質問:
$ curl https://github.com/
curl: (60) SSL certificate problem: self signed certificate in certificate chain
More details here: https://curl.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
背景:
私のコンピュータは会社のローカルイントラネットにあり、一部のWebサイトは会社のMITMプロキシによってブロックされています。
証明書をファイルにエクスポートした後、信頼できるものとしてマークする必要があることを知っています。私は会社のMITMエージェントをサポートするたびに私の人生を少し簡単にするためにこのプロセスを自動化しようとしています。
このトピックをGoogleに検索するのは難しく、ほとんどがすでにダウンロードした証明書を信頼する方法についての結果を得ましたが、この場合は必要ありません。会社MITMエージェントの自己署名証明書をどのようにダウンロードしますか?
宿題:
この質問は、次の質問とは異なります。
- cURLコマンドラインで自己署名証明書を信頼する方法は?Let's Encryptを使用することは、foo.localhostに自己署名証明書を要求することを提案します。
- サーバーから自己署名証明書をインポートまたはカーリングこれは、パブリックサーバーのパブリック自己署名証明書をダウンロードする必要があるためです。
質問:
当社のMITMエージェントの自己署名証明書をダウンロードする方法は?
以前の会社でブロックしたサイトがjsonplaceholder.typicode.com
それで利用しました。
openssl s_client -connect jsonplaceholder.typicode.com:443 -showcerts
zscalerの証明書ブロックを収集します。ただし、この方法で収集された証明書は有効期間が短く、後でそれ自体が期限切れになります。
現在会社からブロックされているウェブサイトはgithub.comです。これを行うと、openssl s_client -connect github.com:443
次のようになります。
$ openssl s_client -connect github.com:443
CONNECTED(00000003)
depth=2 C = CA, O = MY_COMPANY, CN = MY_COMPANY Root CA
verify error:num=19:self signed certificate in certificate chain
. . .
-----END CERTIFICATE-----
subject=C = US, ST = California, L = San Francisco, O = "GitHub, Inc.", CN = github.com
issuer=C = CA, ST = British Columbia, L = xxx, O = MY_COMPANY, CN = theissuer.my_company.com
theissuer.my_company.com
ただし、会社のMITMエージェントの自己署名証明書は使用できません。
$ openssl s_client -connect theissuer.my_company.com
140082197501248:error:2008F002:BIO routines:BIO_lookup_ex:system lib:../crypto/bio/b_addr.c:730:Name or service not known
connect:errno=22
$ openssl s_client -connect my_company.com
. . .
-----END CERTIFICATE-----
subject=C = CA, ST = British Columbia, L = xxx, O = MY_COMPANY, CN = www.my_company.com
issuer=C = US, O = DigiCert Inc, OU = www.digicert.com, CN = Thawte RSA CA 2018
```
それでは、
会社のMITMエージェントの自己署名証明書をどのようにダウンロードしますか?