それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

SSL証明書の有効期限やSANをopensslコマンドで調べる(https証明書確認)

証明書の有効期限を調べる。

openssl コマンドでサクッと証明書の期限を調べる。

枚数が多くなり、またcertbotのような管理ソフトがない、CA発行証明書の有効期限をまとめて調べたい。

20枚もあるといちいち、ブラウザに突っ込んで調べるのは面倒くさい

openssl で証明書の期限を見る

openssl x509 -noout -enddate -in /path/to/xxx.cert

openssl で証明書の詳細を見る。

期限以外の詳細を確認する。

openssl x509 -noout -text  -in /path/to/xxx.cert

SAN / subjectAltName を確認する

openssl x509 -noout -ext subjectAltName  -in /path/to/xxx.cert

CN / subject commonName を確認する

openssl x509 -noout -subject  -in /path/to/xxx.cert

SN / serial Number (シリアル)を確認する。

openssl x509 -noout -serial -in /path/to/xxx.cert

サーバー証明書を直接確認する。

openssl s_client -connect example.com:443 < /dev/null 2> /dev/null |\
  openssl x509 -noout -enddate | \

openssl s_client で接続して、証明書取得し、有効期限を確認する。

スクリプトにまとめる。

#!/usr/bin/env
domain="example.tld"

openssl s_client -connect $domain:443 < /dev/null 2> /dev/null |\
  openssl x509 -noout -enddate | \
  sed 's/notAfter=//' | \
  xargs -i date -d {} +"%F"

日付形式をdate でフォーマットして、サクッと証明書の有効期限を見る。

SSL/TLSの証明書期限切れをチェックするように、自動スクリプトに仕込んで、通知と併せて使うといい。

check_expires example.tld && mailto takuya 'example.tld will expire.'

改訂

  • 2023-02-18 OpenSSLコマンドのオプションを修正。SAN・CNの取得方法も追加