opensslコマンドで指定したURLの証明書を確認する

httpsのURLの証明書をコマンドで確認するにはopensslコマンドを使う。

$ openssl s_client -connect example.com:443 < /dev/null

openssl s_clientコマンドだけの場合は続きの入力を求められてコマンドが終わらないので< /dev/nullで空入力を渡して終了させている。

中間証明書を含めて表示する

中間証明書も含めて表示するには-showcertsオプションを指定する。

$ openssl s_client -connect example.com:443 -showcerts < /dev/null

実行例

当サイトに対して実行すると以下のような出力を得られる。

$ openssl s_client -connect atsum.in:443 < /dev/null
CONNECTED(00000005)
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, CN = Amazon RSA 2048 M02
verify return:1
depth=0 CN = atsum.in
verify return:1
---
Certificate chain
 0 s:CN = atsum.in
   i:C = US, O = Amazon, CN = Amazon RSA 2048 M02
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Feb 17 00:00:00 2024 GMT; NotAfter: Mar 17 23:59:59 2025 GMT
 1 s:C = US, O = Amazon, CN = Amazon RSA 2048 M02
   i:C = US, O = Amazon, CN = Amazon Root CA 1
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Aug 23 22:25:30 2022 GMT; NotAfter: Aug 23 22:25:30 2030 GMT
 2 s:C = US, O = Amazon, CN = Amazon Root CA 1
   i:C = US, ST = Arizona, L = Scottsdale, O = "Starfield Technologies, Inc.", CN = Starfield Services Root Certificate Authority - G2
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: May 25 12:00:00 2015 GMT; NotAfter: Dec 31 01:00:00 2037 GMT
 3 s:C = US, ST = Arizona, L = Scottsdale, O = "Starfield Technologies, Inc.", CN = Starfield Services Root Certificate Authority - G2
   i:C = US, O = "Starfield Technologies, Inc.", OU = Starfield Class 2 Certification Authority
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Sep  2 00:00:00 2009 GMT; NotAfter: Jun 28 17:39:16 2034 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
()

NotBeforeNotAfterの項目で証明書の有効期限を確認できる。