Linuxの証明書チェーンからルートCAとサブCAを抽出する方法は?

Linuxの証明書チェーンからルートCAとサブCAを抽出する方法は?

中間証明書とルート証明書を含む最終的なエンティティ/サーバー証明書があります。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コマンドはないと思います。

おすすめ記事