opensslコマンドでSSL/TLS証明書の中身を確認する

openssl コマンドでSSL/TLS証明書の中身をすることができます。

issuerの情報や証明書の更新期日などをパパッと確認したい時に便利で、稀に使います(今日久しぶりに使いました)。

しばらく経つと忘れてしまうので、今後はこの記事を見て確認できるようにしたいなと、思いました。

opensslコマンド

↓こんな感じで使います。

openssl x509 -in hogehoge-mogumogu.com.crt -text

証明書はサーバ証明書と中間証明書、鍵ファイルの3種類あり、それぞれ確認の仕方が微妙に異なります。

# サーバー証明書と中間証明書のチェック
openssl x509 -in hogehoge-mogumogu.com.crt -text

# 秘密鍵のチェック
openssl rsa -in hogehoge-mogumogu.com.key -text

証明書の組み合わせを確認する

秘密鍵はあまり開かないかもしれませんが、証明書の組み合わせが正しいかチェックしたい、というケースはあるかもしれません。

その場合は下記のようにチェックします。

サーバー証明書と中間証明書のチェック

サーバー証明書のsubjectと中間証明書のissuerが一致すれば正しい組み合わせであることがわかります。逆に一致しなければ正しくない組み合わせとなります。

# サーバー証明書のsubjectと中間証明書のissuerの確認
openssl x509 -subject_hash -noout -in INCRT.crt
openssl x509 -issuer_hash -noout -in CRT.crt

サーバー証明書と秘密鍵のチェック

サーバー証明書に含まれている公開鍵と、CSR作成に使用した秘密鍵が一致すればOK、一致しなければNGとなります。

サーバー証明書に含まれている公開鍵と、CSR作成に使用した秘密鍵のチェック
openssl rsa -noout -modulus -in KEY.key | openssl md5
openssl x509 -noout -modulus -in CRT.crt | openssl md5

まとめ

opensslコマンドの小技をまとめました。やったね!