中間証明書とルート証明書を含む最終的なエンティティ/サーバー証明書があります。cat
最終エンティティ証明書にはラベルとラベルのみが表示されBEGIN
ますEND
。唯一の最終エンティティ証明書です。
中間証明書とルート証明書の内容を表示する方法はありますか?私はちょうどBEGIN
内容を必要とラベルを指定しますEND
。
Windowsでは、「証明書パス」で証明書チェーン全体を表示できます。以下は、Stack Exchange 証明書の例です。
そこから私は実行できます証明書の表示そしてエクスポートします。 Windowsでは、ルートディレクトリと中間ディレクトリに対してこれを行うことができます。 Linuxでも同じ方法を探しています。
ベストアンサー1
Webサイトで次のことができます。
openssl s_client -showcerts -verify 5 -connect stackexchange.com:443 < /dev/null
これにより、サーバーが提供する証明書チェーンとすべての証明書が表示されます。
2つの証明書をファイルに保存すると、次のことができますopenssl verify
。
$ openssl verify -show_chain -untrusted dc-sha2.crt se.crt
se.crt: OK
Chain:
depth=0: C = US, ST = NY, L = New York, O = "Stack Exchange, Inc.", CN = *.stackexchange.com (untrusted)
depth=1: C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert SHA2 High Assurance Server CA (untrusted)
depth=2: C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV Root CA
このオプションは、確認する証明書を-untrusted
提供するために使用されます。se.crt
深さ= 2の結果は、システムの信頼できるCAリポジトリから来ます。
中間証明書がないと確認はできません。これがX.509が動作する方法です。
証明書に応じて中間体を取得するURIを含めることができます。たとえば、次のようにopenssl x509 -in se.crt -noout -text
なります。
Authority Information Access:
OCSP - URI:http://ocsp.digicert.com
CA Issuers - URI:http://cacerts.digicert.com/DigiCertSHA2HighAssuranceServerCA.crt
openssl x509 -inform der -in DigiCertSHA2HighAssuranceServerCA.crt -out DigiCertSHA2HighAssuranceServerCA.pem
「CA発行者」URIは中間証明書(DER形式であるため、OpenSSLで後で使用するにはそれを変換するために使用する必要があります)を指します。
これを実行すると、システムルートCAストアにありますopenssl x509 -in /tmp/DigiCertSHA2HighAssuranceServerCA.pem -noout -issuer_hash
(名前に追加するだけです)。244b5494
/etc/ssl/certs/244b5494.0
.0
これをすべて行うことができる素晴らしいシンプルなOpenSSLコマンドはないと思います。