📜

【SSL/TLS】サーバー証明書の種類と期限を確認したい

2024/01/16に公開

対象読者

  • 証明書チェーンを確認したい
  • 証明書の期限を確認したい

証明書チェーンと期限を確認

以下のコマンドで証明書のチェーンと証明書の期限を確認することができます。

HTTPS

# ドメイン名は、確認したいサーバーのドメイン名を入力してください
openssl s_client -connect <ドメイン名>:443 -showcerts | openssl x509 -text -enddate | grep -e DNS -e notAfter

例として、example.comの証明書を確認してみる。

# 例:example.com
openssl s_client -connect example.com:443 -showcerts | openssl x509 -text -enddate | grep -e DNS -e notAfter
# 結果
depth=2 C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA
verify return:1
depth=1 C=US, O=DigiCert Inc, CN=DigiCert TLS RSA SHA256 2020 CA1
verify return:1
depth=0 C=US, ST=California, L=Los Angeles, O=Internet Corporation for Assigned Names and Numbers, CN=www.example.org
verify return:1
                DNS:www.example.org, DNS:example.net, DNS:example.edu, DNS:example.com, DNS:example.org, DNS:www.example.com, DNS:www.example.edu, DNS:www.example.net
notAfter=Feb 13 23:59:59 2024 GMT

利用するルート証明書を指定する方法

-CAfileオプションでルート証明書のパスを指定することで、利用するルート証明書を指定しての証明書確認ができる。

# -CAfile <ルート証明書のパス>
openssl s_client -connect <ドメイン名>:443 -CAfile <ルート証明書のパス> -showcerts | openssl x509 -text -enddate | grep -e DNS -e notAfter

実際のサーバー名とドメイン名が異なる場合

-servernameオプションでサーバー名を指定できる

openssl s_client -connect <ドメイン名>:443 -servername <サーバー名> -showcerts | openssl x509 -text -enddate | grep -e DNS -e notAfter

FTPS

FTPSの証明書を確認する方法は以下

openssl s_client -connect <ドメイン名>:21 -showcerts -starttls ftp | openssl x509 -text -enddate | grep -e DNS -e notAfter

s_clientオプションの調べ方

openssl s_client -help

参考

Discussion