サーバーから自己署名証明書をインポートまたはカーリング

サーバーから自己署名証明書をインポートまたはカーリング

自分のブラウザで会社のローカルイントラネット上のコンピュータを閲覧し(証明書を信頼できるとマークした後)、証明書をファイルにエクスポートできます。セキュリティを放棄せずにさまざまなコマンドラインツールを使用するときに人生を簡単にするために、このプロセスをシェルスクリプトで自動化したいと思います。

このトピックをGoogleで検索するのは困難でしたが、ほとんどの場合、wgetまたはカールを使用したときにダウンロードした証明書を信頼する方法についての結果を得ましたが、この場合は必要ありません。 wgetまたはカールを介してサーバーの公開自己署名証明書をローカルファイルにダウンロードするにはどうすればよいですか?

答え1

wgetやカールについてはよくわかりませんが、公開鍵にのみ興味がある場合は、次のように動作します。

openssl s_client -connect hostname.domain.tld:port 2>&1 </dev/null | sed -ne '/BEGIN CERT/,/END CERT/p'

通常、証明書のダウンロードについて話すときは、ルート証明書になります。次のコマンドを使用してVerisignの証明書を見つけ、ルート証明書をシステムにwgetまたはカーリングして、Verisign証明書で認証できます。この場合、具体的には「VeriSign Class 3 Extended Validation SSL SGC CA」ルートです。

$ openssl s_client -connect verisign.com:443 2>&1 </dev/null | openssl x509 -noout -text | grep "CA Issuers"
            CA Issuers - URI:http://EVIntl-aia.verisign.com/EVIntl2006.cer

上記のコマンドは、関連付けられた証明書を表示するほぼすべてのサーバーで機能します。

関連情報