SSL証明書の整合性のコマンド
以下のコマンドを発行することで確認できます。
概要
発行されたSSL証明書の整合性を
- 証明書と秘密鍵
- 証明書と中間証明書
のハッシュ値を比べることで認証局から発行された証明書であることを確認します。
1.証明書と秘密鍵のハッシュ値を確認
- 証明書から公開鍵のハッシュ値を取り出す
openssl x509 -pubkey -in /etc/certs/hoge.example.com.crt -noout | openssl md5
→ (stdin)= ハッシュ値
/etc/certs/hoge.example.com.crtは各自のSSL証明書ファイルのパスに合わせます。
- 秘密鍵から公開鍵のハッシュ値を取り出す
openssl pkey -pubout -in /etc/private/hoge.example.com.key | openssl md5
→ (stdin)= ハッシュ値
/etc/private/hoge.example.com.keyは各自のSSL秘密鍵のパスに合わせます。
証明書と秘密鍵それぞれから抽出した公開鍵のハッシュ値を確認します。2つのハッシュ値が合致していれば、適切な証明書と秘密鍵の組み合わせです。
2a.証明書と中間証明書のハッシュ値を確認 (別ファイルで提供されている場合)
市販されている証明書は中間証明書と別になっていることが多いです。
- 証明書発行元のハッシュ値を取り出す
openssl x509 -issuer_hash -noout -in /etc/certs/hoge.example.com.crt
/etc/certs/hoge.example.com.crtは各自のSSL証明書ファイルのパスに合わせます。
- 中間証明書の発行元のハッシュ値を取り出す
openssl x509 -subject_hash -noout -in /etc/certs/hoge.sample.com.CA.crt
/etc/certs/hoge.sample.com.CA.crtは各自のSSL中間証明書ファイルのパスに合わせます。
上記2つのハッシュ値が合致していれば、適切な認証局から発行された証明書と中間証明書の組み合わせです。
2b.証明書と中間証明書のハッシュ値を確認 (証明書と中間証明書が結合されている場合)
Let's Encryptのように、証明書と中間証明書が結合されている場合の手順です。
- 結合された証明書部分のハッシュ値を取り出す
openssl x509 -issuer_hash -noout -in /etc/certs/hoge.example.com.crt
- 結合された中間証明書部分のハッシュ値を取り出す
sed -n -e'1d' -e'/BEGIN/,$p' /etc/certs/hoge.example.com.crt | openssl x509 -subject_hash -noout
上記2つのハッシュ値が合致していれば、証明書ファイルと中間証明書は適切に結合されています。