まず結論:SSL Handshake Failedで起きていること
- HTTP(平文)ではなくHTTPS(暗号化)で接続しようとして失敗している
- 証明書やTLS設定の不整合により、暗号通信の合意(ハンドシェイク)が成立しない
- 多くはサイト側の設定問題。ただし端末側の時刻・古い環境でも起きる
主な原因(サイト側)
- SSL証明書の期限切れ、または更新漏れ
- 証明書チェーン(中間証明書)設定ミス
- TLS/暗号スイート設定が厳しすぎる(古い端末/ブラウザが対応できない)
- SNI/ホスト名不整合(複数ドメイン運用で誤った証明書が返る)
- Cloudflare等CDNとオリジンのTLS設定が噛み合っていない(Flexible/Full/Strictの不整合等)
- HTTPSリダイレクト/HTTP→HTTPSの設定不備でループや例外が発生している
主な原因(ユーザー側)
- 端末の日時が大きくズレている(証明書の有効期限判定に失敗)
- 会社/学校ネットワークやセキュリティ製品がHTTPS通信に干渉している(SSLインスペクション等)
- 古いOS/ブラウザで最新TLSに対応できない
- VPN/プロキシの経路が不安定でTLSが途中で失敗する
ユーザー側でできる対処(優先順)
- 1) 別ブラウザ/別端末で試す(手元要因の切り分け)
- 2) 端末の日時を確認・自動設定をオンにする(最重要)
- 3) シークレットモードで試す(拡張機能の影響を減らす)
- 4) VPN/プロキシをオフにして試す(干渉の切り分け)
- 5) 別回線で試す(社内ネットワークの干渉を回避)
運営者側の確認ポイント(サイト管理者向け)
- 証明書の期限・対象ドメイン(SAN)・更新状況を確認
- 証明書チェーン(中間証明書)設定が正しいか確認
- TLS設定(対応バージョン、暗号スイート)を確認(互換性を落としすぎない)
- SNI/バーチャルホスト設定で正しい証明書が返っているか確認
- CDN(Cloudflare等)利用時:TLSモードとオリジン証明書の整合(Full/Strict等)
- HTTPSリダイレクト/HTTP→HTTPSのルールがループしていないか確認
この問題が「サイト全体」か「自分だけ」か確認する
SSL/TLSはサイト側設定が原因のことが多いですが、端末/回線/セキュリティ製品の影響で“自分だけ”失敗するケースもあります。外部地点から到達できるか確認して切り分けましょう。
よくある質問
- Q. これはサーバーダウンですか? → 多くの場合は違います。HTTPS(TLS)の合意が成立していないだけで、サーバー自体は動いていることがあります。
- Q. なぜ“端末の時間”が重要? → 証明書は「有効期間」があり、端末の時計がズレると期限切れ扱いになって接続できません。
- Q. Cloudflareを使っていると起きやすい? → 設定が複雑になるため起き得ます。Cloudflare側TLSモードとオリジン証明書の整合が重要です。
- Q. 直るまでどれくらい? → 端末要因ならすぐ直ることもあります。サイト側の証明書/設定問題なら運営者対応次第です。