「証明書の有効期限が切れてサイトが真っ赤になった」——Web運用でもっとも起こりやすく、もっとも防ぎやすい事故です。SSL/TLS証明書が何を証明していて、どう検証されているのかを押さえると、警告の原因が一目でわかるようになります。
証明書が証明しているのは「このドメインの持ち主だ」ということ
SSL証明書には2つの役割があります。ひとつは通信の暗号化、もうひとつは相手が本物であることの証明です。混同されがちですが、警告が出る原因はほぼ後者にあります。
ブラウザは、サーバーから受け取った証明書が信頼できる認証局まで辿れるかを検証します。この連なりを証明書チェーンと呼びます。

警告が出る4つの原因
1. 有効期限切れ
もっとも多い原因です。Let’s Encryptの証明書は90日と短いため自動更新が前提ですが、更新用のcronやcertbotのタイマーが静かに止まっていることがあります。更新が動いていても、Webサーバーへの再読み込み(reload)が漏れていて古い証明書が配信され続ける、というパターンもあります。
対策はシンプルで、期限を監視しておくことに尽きます。
2. 名前の不一致
証明書には対象のホスト名が記載されており、アクセスしたURLと一致しなければ警告になります。典型的なのは次の2つです。
example.comでは有効だがwww.example.comがSAN(Subject Alternative Name)に入っていない- ワイルドカード証明書(
*.example.com)はa.example.comをカバーするが、a.b.example.comはカバーしない
3. 中間証明書の設定漏れ
やっかいなのがこれです。自分のPCでは正常に見えるのに、特定のスマホや古い端末だけでエラーになるという症状で現れます。
原因は、サーバーがサーバー証明書だけを送り中間証明書を送っていないことです。ブラウザによっては過去に取得した中間証明書をキャッシュしていて繋がってしまうため、環境によって結果が変わります。設定ファイルではサーバー証明書と中間証明書を連結したファイル(fullchain)を指定するのが確実です。
4. 自己署名証明書
自分で発行した証明書は、信頼されたルートまで辿れないため必ず警告が出ます。開発環境では問題ありませんが、本番では使えません。
実際に確認する
SSL証明書チェッカーにホスト名を入力すると、発行者・有効期限・残り日数・対象ドメイン(CN / SAN)を確認できます。残り日数が14日を切ると赤く表示されるので、更新漏れの早期発見に使えます。
「証明書は正常なのにサイトが表示されない」という場合は、証明書ではなくネットワーク側の問題です。切り分けの手順を参考にしてください。
まとめ
- 警告の原因は暗号化ではなく「本物であることの証明」側にある
- 期限切れは自動更新の停止かreload漏れ。監視しておけば防げる
- wwwあり/なし、多段サブドメインはSANとワイルドカードの範囲に注意
- 「自分の環境だけ正常」なら中間証明書の設定漏れを疑う

