リモートサーバーのSSL証明書(HTTPSではなく)をダウンロードする必要があります。ただし、SSLハンドシェイクはGoogle Chromeの/ IE/wgetと同じで、すべての証明書の確認に失敗するエラーを表示します。私のラップトップのWindowsの証明書ストアに信頼されているのは、私のIT担当者にCA証明書をもらうことができないためです。
これはオフィスの通信用なので、実際のクライアントを使って証明書を取得することはできません。
これを行うにはどうすればいいですか?私はWindows 7とLinuxの山を持っているのでどんなツール/スクリプト言語でも大丈夫です。
OpenSSLにアクセスできる場合は、試してください。
openssl s_client -connect {HOSTNAME}:{PORT} -showcerts
{HOSTNAME}と{PORT}を自分の値がなんであれ置き換えます。
証明書を取得してダウンロードする簡単な方法は、-showcertsからの出力をx509 sslコマンドにパイプ処理する次のコマンドを実行することです。例えば:
openssl s_client -showcerts -connect server.edu:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >mycertfile.pem
証明書を使用するには、wgetを使用します。
wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem
正直に言うと、これまで試したことは一度もありませんでしたが(必要ではありませんでした)、Firefoxで試したことがあるので、保存するとうまくいくようです:
View Certificate
をクリックDetails
タブをクリックExport
をクリックChromeブラウザを使用して証明書をエクスポートする
2.ロック記号をクリックしてから、詳細をクリックします。
Chromeバージョン56以降は、次の手順を実行します。[Three Dots Menu]、[More Tools]、[Developer Tools]の順にクリックし、[Security]タブをクリックします。これにより、セキュリティの概要と証明書の表示ボタンが表示されます。
証明書の表示ボタンをクリックしてください。
モーダルウィンドウが開きます。 2つのペインがあります。一番上のものは、サイトの証明書(リストの最後のもの)、中間証明書、およびルート証明書(一番上のもの)の信頼階層を示しています。
2番目の大きなペインには、いずれかの証明書の詳細が表示されます。
0個以上の中間証明書が存在する可能性があります。
ルート証明書には金色の枠のアイコンが付いています。他の人は青い枠線があります。
下のスクリーンショットを見てください。
証明書をエクスポートするには
これは gbroilesの回答 ですが、cURLプロジェクト にはさらにいくつかのページがあります。リモートサーバのSSL証明書を保存するためのopenssl
の使用に関する詳細 :
openssl s_client -connect {ホスト名}:{ポート} |ログファイル
QUIT
と入力してEnter/Returnキーを押します。証明書のデータを見たい場合は、次のものを使用できます。
openssl x509 -inform PEM -in certfile -text -out certdata
ここで、certfile
はlogfile
から抽出された証明書です。 certdata
を見てください。
自動化
サーバー上の仮想ホストから正しい証明書を取得するには、servernameが必要でした。
openssl s_client -showcerts -connect Host.name.com:443 -servername Host.name.com </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > Host.name.com.pem
デスクトップ用の証明書に変換することもできます
openssl x509 -inform PEM -in Host.name.com.pem -outform DER -out Host.name.com.cer
最後の部分はあなたの証明書にそれを追加することです、ウィンドウズではわからない
私が使ったMacのキーチェーンでは、似たようなものになります.
Sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain Host.name.com.cer
証明書のみを含む結果が得られます
echo QUIT | \
openssl s_client -showcerts -connect hostname:port | \
awk '/-----BEGIN CERTIFICATE-----/ {p=1}; p; /-----END CERTIFICATE-----/ {p=0}' "
Windows上であればもっと簡単な方法を見つけました。 Microsoft Edge(プレクロム)を試して、アドレスバーの鍵をクリックします - >証明書の表示ダイアログが「ファイルにエクスポート」ボタンでポップアップ表示され、それが.crtファイルとして保存されます。
私はあまりEdgeを使用しませんでしたが、これは簡単なことでした。