コンテンツにスキップ

📜 SSL / TLS 証明書確認

ホスト名を入れるだけで SSL/TLS 証明書を取得し、発行者・有効期限・Subject Alternative Name・証明書チェーンを確認します。

完全無料 登録不要 サーバー処理 ログ・DB 保存なし レート制限あり 5 言語対応 ダークモード

⚠️ 診断対象のサーバーには DevLab のサーバーからアクセスが行われます。プライベート IP・ローカルホストは対象外です。

📖 この診断で分かること

ブラウザの鍵マークは「証明書が有効」「発行元を信頼している」「ドメイン名が一致している」の 3 つが同時に成り立ったときだけ点きます。この診断は実際に TLS ハンドシェイクを行い、返ってきた証明書の有効期限・発行者・対象ドメイン・チェーンの構成を確認します。ローカルのブラウザで見えていても、証明書チェーンが不完全だと一部の環境だけで失敗します — Android の古い端末や curl、サーバー間通信で落ちるのがこのパターンです。

判定項目 何を見ているか 引っかかったときの対処
有効期限 残り日数です。Let's Encrypt は 90 日なので、自動更新が止まっていれば 60 日ほどで警告域に入ります。 certbot なら certbot renew --dry-run で更新経路が生きているか確認します。失敗の大半は 80 番ポートが塞がっている (HTTP-01 が通らない) か、更新後に nginx をリロードしていないかのどちらかです。
証明書チェーン サーバー証明書から信頼されたルートまでの経路です。中間証明書を配信していないと、それを手元に持っていないクライアントだけが検証に失敗します。 nginx は ssl_certificateサーバー証明書 + 中間証明書を連結した ファイル (certbot なら fullchain.pem) を指定します。cert.pem を指すのがこの不具合の典型的な原因です。
ドメイン名の一致 (SAN) 証明書が対象としているホスト名の一覧です。現在は CN ではなく SAN が見られます。example.comwww.example.com は別名なので、両方載っている必要があります。 certbot なら -d example.com -d www.example.com のように必要なホストをすべて並べて取り直します。ワイルドカード証明書は DNS-01 チャレンジが必要で、*.example.comexample.com 自身を含まない点にも注意してください。
TLS バージョン TLS 1.0 / 1.1 は失効済みで、PCI DSS でも禁止されています。1.2 が最低ライン、1.3 が現行です。 nginx なら ssl_protocols TLSv1.2 TLSv1.3; に絞ります。古い端末を切り捨てる判断になるので、アクセスログの User-Agent を見てから決めてください。

ブラウザは一度取得した中間証明書をキャッシュするため、チェーンが不完全でも手元では再現しないことがあります。openssl s_client -connect example.com:443 -servername example.com の出力に中間証明書が含まれているかを見るのが確実です。