opensslコマンドの使い方

TT
2022-09-29
2022-09-29

opensslはUnix系のOSで標準的に利用できる暗号化関連を幅広くサポートするプログラムで、
opensslコマンドを使えばSSL証明書の様々な情報を確認できます。


コマンドの詳細はマニュアルやヘルプを参照していただければと思いますが、
sshのターミナルで実行するコマンドの実用例を紹介したいと思います。



下記のコマンドでSSL証明書の中身が参照できます。

openssl x509 -in [証明書ファイルパス] -text

下記のコマンドで秘密鍵の参照ができます。
openssl rsa -text -noout -in [秘密鍵ファイルパス]

SSL証明書の中身とModulusの部分を比較し、鍵の中身がマッチしているか確認できます。



下記のコマンドでWebサイトに設置されているSSL証明書が参照できます。

openssl s_client -connect [ドメイン名]:443 < /dev/null 2>/dev/null | openssl x509 -txt


SNIなどでサーバー名の指定が必要な場合は以下の指定ができます。

openssl s_client -connect [ドメイン名]:443 -servername [ドメイン名] < /dev/null 2>/dev/null | openssl x509 -text

さらに見やすく有効期限、コモンネームのみ抽出する場合は下記になります。

openssl s_client -connect [ドメイン名]:443 -servername [ドメイン名] < /dev/null 2>/dev/null | openssl x509 -text | grep "DNS\|After\|Subject:"


コマンドのポートの部分を変更することでメールに設置された証明書の確認も可能です。

送信用(ポート番号465)
openssl s_client -connect [ドメイン名]:465 -servername [ドメイン名] < /dev/null 2>/dev/null | openssl x509 -text | grep "DNS\|After\|Subject:"

受信用(ポート番号995)
openssl s_client -connect [ドメイン名]:995 -servername [ドメイン名] < /dev/null 2>/dev/null | openssl x509 -text | grep "DNS\|After\|Subject:"