← ガイド記事一覧へ戻る

SSL証明書の確認方法まとめ:ブラウザ・コマンドで有効期限と発行元を調べる

SSL/TLS証明書の有効期限・発行元・対象ドメインを、ブラウザ・openssl・curl・PowerShellで確認する方法と、確認すべきポイント、エラーの原因をまとめて解説します。

SSL証明書で確認すべき項目

サイトの「SSL証明書」は、正確にはTLS証明書と呼ばれるものです。証明書を確認するときは、次の項目を見ます。

有効期限(いつまで有効か)、発行者(どの認証局が発行したか)、対象ドメイン(CN・SAN:どのドメイン名に対して発行されているか)、証明書チェーン(中間証明書を含めて正しくつながっているか)の4点です。証明書のトラブルの大半は、この4点のどれかに原因があります。

ブラウザで確認する方法

Google Chrome・Microsoft Edge

アドレスバーの左端にあるサイト情報のアイコンをクリックし、「接続は保護されています」から証明書の項目を開くと、証明書ビューアーで有効期限・発行者・対象ドメインを確認できます。メニューの名称や位置はバージョンによって異なります。

Safari(Mac)

アドレスバーの鍵のアイコンをクリックして「証明書を表示」を選ぶと、詳細を開けます。

スマートフォン(iPhone・Android)

スマートフォンのブラウザでは、証明書の詳細を表示できない場合があります。端末やOSのバージョンによって異なるため、詳細を確認したいときは、パソコンのブラウザか、次に紹介するコマンドで確認するのが確実です。

コマンドで確認する方法

openssl(Linux・Mac)

次のコマンドで、有効期限・発行者・対象を表示します。 echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -issuer -subject なお、SANを表示するには、続けて -ext subjectAltName を付けます(OpenSSL 1.1.1以降)。

有効期限が近いかを判定する

証明書をファイルに保存したうえで、openssl x509 -checkend 2592000 -noout -in cert.pem を実行すると、30日(2592000秒)以内に期限が切れるかを終了コードで判定できます。監視スクリプトに組み込みやすい方法です。

証明書チェーンを確認する

openssl s_client -connect example.com:443 -servername example.com -showcerts を実行すると、サーバーが送ってくる証明書チェーンを表示できます。中間証明書が含まれているかを確認するときに使います。

curl

curl -vI https://example.com を実行すると、接続時のやり取りの中に、証明書の発行者や有効期限(expire date)が表示されます。

PowerShell(Windows)

TcpClientとSslStreamで接続し、受け取った証明書をX509Certificate2として読むと、NotAfter(有効期限)やIssuer(発行者)を確認できます。手順が長いため、日常的な確認にはブラウザが手軽です。

証明書のエラーでよくある原因

  • 有効期限切れ — 更新を忘れた、自動更新が止まっていた
  • ドメイン名の不一致 — 証明書のCN・SANに、アクセスしているドメイン名が含まれていない(wwwの有無、サブドメインなど)
  • 中間証明書の不足 — サーバーに中間証明書が設定されておらず、環境によってはエラーになる
  • 自己署名証明書 — 認証局が発行したものではないため、ブラウザから信頼されない
  • 端末の日時のずれ — 証明書が問題ないのに、端末の日時が大きくずれていて期限外と判定される

まとめ

普段の確認はブラウザ、サーバー側での確認や自動チェックにはopensslやcurlが向いています。まず有効期限・発行者・対象ドメインの3点を見て、それでも原因がわからなければ、証明書チェーンを確認してください。

ドメイン名からIPアドレスを調べたいときは、DNSルックアップやIPアドレス確認ツールもあわせてご利用ください。