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-----
(略)
NotBefore
〜NotAfter
の項目で証明書の有効期限を確認できる。
\第一線のプログラマーの行動原理を学べる!/