Openssl で SSL証明書の有効期限を確認する

サーバー側のSSL証明書の有効期限を確認する

証明書の有効期限を確認するには、ブラウザでURLを指定してアクセスして証明書の有効期限を確認できます。
CentOS 等で「openssl」コマンドで使用できる場合は、以下のコマンドSSL証明書の有効期限を確認できます。

書式:openssl s_client -connect “ドメイン名":443 < /dev/null 2> /dev/null | openssl x509 -text | grep “Not"

$ openssl s_client -connect "example.com:443 < /dev/null 2> /dev/null | openssl x509 -text | grep "Not"
            Not Before: Nov 12 00:00:00 2018 GMT
            Not After : Jan 10 12:00:00 2021 GMT

証明書の有効期限に関してですが、証明書の発行日は「Not Before:」で失効日は「Not After : 」で確認できます
Not Before: Nov 12 00:00:00 2018 GMT (証明書の発行日)
Not After : Jan 10 12:00:00 2021 GMT(証明書の失効日)

ローカルファイルのSSL証明書の有効期限を確認する

サーバーのローカルにあるファイルで、証明書を確認するには以下のコマンドで確認できます

書式:openssl x509 -noout -text -in “サーバー証明書ファイルのフルパス" | grep “Not"

#  openssl x509 -noout -text -in "/etc/letsencrypt/live/example.com/cert.pem" | grep "Not"
            Not Before: Nov 12 00:00:00 2018 GMT
            Not After : Jan 10 12:00:00 2021 GMT

 

Let’s Encryptの証明書の場合、opensslコマンドでサーバー側から見ると正しい値が取れない

opensslコマンドで確認できるですが、 Let’s Encryptの証明書の場合は、実際にブラウザで確認できる日付とopensslコマンドの日付と異なる場合はあります。全てのLet’s Encryptの証明書でそれに該当する訳ではなかったです。

このサイトではopenssl コマンドでサーバー側のURLを指定して確認すると、「Apr 30 20:03:44 2020 GMT」が失効期限になっています

$ openssl s_client -connect "ex1.m-yabe.com":443 < /dev/null 2> /dev/null |
 openssl x509 -text | grep "Not"
            Not Before: Jan 31 20:03:44 2020 GMT
            Not After : Apr 30 20:03:44 2020 GMT

ブラウザで確認すると、「2020/05/30」が失効期限です

サーバ証明書ファイルのファイルを指定すると失効日は「Jun 29 20:06:34 2020 GMT」となり、ブラウザと同じような日時となります。

# openssl x509 -noout -text -in /etc/letsencrypt/live/ex1.m-yabe.com/cert.pem | grep "Not"
            Not Before: Mar 31 20:06:34 2020 GMT
            Not After : Jun 29 20:06:34 2020 GMT

少し調べてみましたが原因はわかりませんでした

スポンサーリンク