2008年7月20日日曜日

SSL用秘密鍵と証明書がペアかどうか確かめる

SSL通信に使用する、秘密鍵と証明書のセット。
これらはペアで使用しないといけませんが、たまにどれとどれがペアだったか自信がなくなったり、
証明書が複数あってどれが最新(期限切れでない)か迷う時があります。
 
きっちり管理しろよと言われればそうなんですが、OpenSSLのコマンドでそれらを確実に調べるときのメモ。
 
 
まずペアかどうか、これは秘密鍵・証明書からそれぞれ生成した公開鍵が一致すればペアとして使用できることが確認できます。
両方が込みの単一ファイルの場合は同じファイルを指定でOKです。
 

秘密鍵から公開鍵作成


# openssl rsa -in [秘密鍵ファイル].pem -pubout

証明書からから公開鍵作成


# openssl x509 -in [証明書ファイル.pem -pubkey

 
両者の出力から公開鍵の部分を比較します。
-----BEGIN PUBLIC KEY-----
(省略)
-----END PUBLIC KEY-----

 
一致すればOK.
note:
ちなみに余談、PKIで使われる上記の仕組みは一致するように作ったのではなく、
たまたま一致することがわかったから使っているということをどこかで見ました。
情報処理の参考書だったかな?

 
 
ほか、opensslコマンドの便利な使い方としてファイル内容の出力があります。
openssl rsa -text -in [秘密鍵ファイル].pem
openssl x509 -text -in [証明書ファイル].pem

標準出力で色々表示されます、秘密鍵はそれほど見るものはないですが、
証明書のほうはコモンネームやら有効期限の情報を参照できて便利です。
 
 
この内容はLinux・Windows共に対応できますが、Windowsなら証明書はダブルクリックのほうが早いですね。