新しいCA証明書がクライアントにプッシュされるにつれて、証明書チェーンをダウンロードしてローカルで確認しようとします。基本的に、どのウェブサイトが特定の時間に機能しているかを把握することです。次のコマンドを使用してチェーンをダウンロードします。
echo -n | openssl s_client -showcerts -connect example.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > mycert.pem
ただし、それを使用すると、openssl verify
次のエラーメッセージが表示されます。
root@host:~# openssl version
OpenSSL 1.1.0e 16 Feb 2017
root@host:~# echo -n | openssl s_client -showcerts -connect example.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > mycert.pem
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, CN = DigiCert SHA2 Secure Server CA
verify return:1
depth=0 C = US, ST = California, L = Los Angeles, O = Internet Corporation for Assigned Names and Numbers, OU = Technology, CN = www.example.org
verify return:1
DONE
root@host:~# openssl verify mycert.pem
C = US, ST = California, L = Los Angeles, O = Internet Corporation for Assigned Names and Numbers, OU = Technology, CN = www.example.org
error 20 at 0 depth lookup: unable to get local issuer certificate
error mycert.pem: verification failed
これらの証明書チェーンをオフラインで確認する正しい方法は何ですか?
ベストアンサー1
確認したい証明書をあるファイルに入れ、チェーンを別のファイルに入れる必要があります。
openssl verify -CAfile chain.pem mycert.pem
もちろん、openssl
chain.pemにルート証明書が含まれていない場合は、ルート証明書を見つける方法を知ることも重要です。これを行う必要がある場合(独自のCAを使用している場合)、次の場所にある代替ディレクトリを指定することもできます。-CApath