wgetまたはその他のコマンドを使用して、たとえばhttps://www.google.comからSSL証明書をダウンロードしたい。UNIXコマンドラインはありますか?wgetまたはopenssl?
wgetまたはその他のコマンドを使用して、たとえばhttps://www.google.comからSSL証明書をダウンロードしたい。UNIXコマンドラインはありますか?wgetまたはopenssl?
回答:
証明書をダウンロードするには、次のようにopensslに組み込まれているクライアントを使用する必要があります。
echo -n | openssl s_client -connect HOST:PORTNUMBER \
| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/$SERVERNAME.cert
これにより、証明書がに保存され/tmp/$SERVERNAME.cert
ます。
-showcerts
チェーン内のすべての証明書をダウンロードする場合に使用できます。ただし、サーバー証明書をダウンロードするだけの場合は、指定する必要はありません-showcerts
echo -n
接続が解放されるように、サーバーに応答します
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
証明書チェーンと接続の詳細に関する情報を削除します。これは、証明書を他のキーストアにインポートするための推奨形式です。
-showcerts
あまりにサーバー/葉の証明書を示して?そのスイッチが含まれている場合にのみ中間体を表示すると思った。
s_client
ように、サーバー証明書を常に表示します(サーバー証明書がある場合、つまりサーバーがhelloに応答し、匿名スイートを選択しません)。-showcerts
示すすべての本命は、まず中間体および/またはルート証明書、サーバを受け取りました。
答えを見つけました。Opensslが提供します。
openssl s_client -connect $ {REMHOST}:$ {REMPORT}
openssl x509 -text <<EOF cert-text EOF
証明書の詳細も参照してください
sudo rm -f cert.pem && sudo echo -n | openssl s_client -connect localhost:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ./cert.pem
礼儀serverfault.com/questions/139728/...
@bignoseの回答に基づいて、以下はシェフのレシピなどによく適合する自己完結型のバージョンです。
sudo apt-get install gnutls-bin
gnutls-cli --print-cert myserver.com </dev/null| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > myserver.crt
sudo cp myserver.crt /usr/local/share/ca-certificates/myserver.crt
sudo update-ca-certificates
true | openssl s_client -connect google.com:443 2>/dev/null | openssl x509
このopensslのモードはstdinを想定しているため、を介して提供しtrue |
、これは-connectパラメーターで指定されたサーバーに接続します。2>/dev/null
沈黙エラー(オプション)、/dev/stdin
シェルパイプを入力ファイルとして使用するように指定して、出力全体をx509パーサーに渡すことができます。そして、それは出力の-----BEGIN CERTIFICATE-----
to -----END CERTIFICATE-----
部分だけを出力しs_client
ます。> google.com.pem
コマンドの最後に追加することで、ファイルにリダイレクトできます。
私が知る限り、これは証明書チェーンを検証するものではなく、エンドサーバーが提供するSSL IDのみを伝えることができます。
x509
デフォルトでstdinを読み込むため-in /dev/stdin
冗長です(3)s_client
サーバー証明書がローカルのトラストアンカー(ルート)に正しくチェーンされていることを確認しますが、有効期限はありませんこれを示す情報を抑制しました(4)失効を確認しません(5)サーバー証明書の名前を1.0.2でのみ確認し、デフォルトでは確認しません(ただし、証明書を見て簡単に確認できます)その後)