SSL証明書の整合性を確認したい。
以下のコマンドを発行することで確認できます。
概要¶
発行されたSSL証明書の整合性を
- 証明書と秘密鍵
- 証明書と中間証明書
のハッシュ値を比べることで認証局から発行された証明書であることを確認します。
証明書と秘密鍵のハッシュ値を確認¶
- SSL証明書ファイルのハッシュ値
openssl x509 -pubkey -in /etc/certs/hoge.example.com.crt -noout | openssl md5
→ (stdin)= ハッシュ値
- 秘密鍵ファイルのハッシュ値
openssl pkey -pubout -in /etc/private/hoge.example.com.key | openssl md5
→ (stdin)= ハッシュ値
証明書と秘密鍵それぞれから抽出した公開鍵のハッシュ値を確認します。2つのハッシュ値が合致していれば、適切な証明書と秘密鍵の組み合わせです。
証明書と中間証明書のチェーンを確認¶
openssl verify -CAfile /etc/certs/hoge.example.com.crt /etc/certs/hoge.sample.com.CA.crt
証明書と中間証明書のチェーンを確認し、OK
と出ることを確認します。
証明書と中間証明書のチェーンを検証 (証明書と中間証明書が結合されている場合)¶
openssl crl2pkcs7 -nocrl -certfile /etc/certs/hoge.example.com.crt | openssl pkcs7 -print_certs -outform PEM | awk 'BEGIN {c=0;} /BEGIN CERTIFICATE/ {c++} { print > "cert" c ".pem"}' && openssl verify -CAfile cert2.pem cert1.pem
openssl verify -CAfile cert2.pem cert1.pem
cert1.pem: OK
Let's Encryptのように、証明書と中間証明書が結合されている場合もあります。この時は、上記のコマンドを実行することで、OKを確認します。