速度改善・安全対策

WordPressで525 SSL Handshake Failedが出るときの直し方|Cloudflare・TLS接続の確認順

Cloudflareを利用しているWordPressで「525 SSL Handshake Failed」が表示され、HTTPSの公開ページや管理画面へ入れなくなることがあります。証明書更新、サーバー移行、SSL/TLSモード変更、Webサーバー設定変更の直後に発生することもあります。

525は、閲覧者のブラウザとCloudflareの間ではなく、Cloudflareとオリジンサーバーの間でTLSハンドシェイクが完了しなかった状態です。証明書の有効性だけでなく、443番ポート、SNI、対応TLSバージョン、暗号スイート、接続リセットを確認します。

525を消すために、SSL/TLSモードをFlexibleへ恒久的に下げたり、443番ポートを全世界へ無条件開放したりしないでください。暗号化区間やオリジン防御を弱めず、ハンドシェイクのどこで失敗したかを特定して直します。

先に結論:525エラーは8段階で確認する

  1. URL、発生時刻、タイムゾーン、Ray IDを記録する
  2. Cloudflare・ホスティングの障害と直前変更を確認する
  3. CloudflareのSSL/TLSモードがFull系か確認する
  4. 現在のオリジンIPで443番が待ち受けているか確認する
  5. 対象ホスト名で証明書が提示されるか確認する
  6. SNI、TLSバージョン、暗号スイート、接続リセットを調べる
  7. 原因に近い設定だけを修正して再確認する
  8. HTTPS、管理画面、保存、証明書監視、5xx再発を確認する

接続自体を拒否している場合はWordPressの521エラーを直す確認順、接続が時間内に進まない場合はWordPressの522エラーを直す確認順を使います。証明書提示後の検証失敗なら、次の記事073で扱う526が対象です。

525エラーとは?

Cloudflare公式のError 525では、CloudflareとオリジンWebサーバー間のSSLハンドシェイク失敗と説明されています。CloudflareでFullまたはFull (Strict)を設定しているときに発生します。

TLSハンドシェイクでは、接続先ホスト名、利用できるTLSバージョンと暗号方式、証明書、鍵を使った確認などを行います。この会話が途中で成立しなければ、WordPressのPHPや投稿本文へ到達する前に525となります。

ブラウザにCloudflareの証明書が正常表示されていても、オリジン側が正常とは限りません。ブラウザが見ているのは主にCloudflareエッジの証明書で、525はその先にあるCloudflareからオリジンへの区間で発生します。

TLS接続機構がかみ合わず停止した暗号化通信室

521・522・525・526の違い

表示主な状態最初に見るもの
521 Web Server Is Downオリジンが接続を拒否Webサーバー、ポート、ファイアウォール
522 Connection Timed Out接続または要求確認が時間切れIP遮断、負荷、DNS、経路
525 SSL Handshake FailedTLSハンドシェイクが成立しない443、SNI、TLS、暗号方式、SSLログ
526 Invalid SSL Certificate提示証明書をStrict検証できない期限、SAN、発行元、証明書チェーン

525と526は似ていますが、525は安全な接続の会話自体が完了しない状態、526は証明書を受け取った後にCloudflareが有効と認められない状態です。実際のコードとSSLログを見ずに「証明書期限切れ」と決めつけないことが大切です。

WordPressで525が出る主な原因

1.オリジンの443番ポートが開いていない

WebサーバーがHTTPSを待ち受けていない、ファイアウォールがCloudflareからの443番通信を遮断している、ロードバランサーのHTTPSリスナーが停止している場合、TLSハンドシェイクを始められません。現在のオリジンIPと対象ポートを確認します。

2.対象ホスト名に証明書が割り当てられていない

一台のサーバーで複数サイトを運営している場合、SNIで対象ホスト名を伝え、正しい仮想ホストと証明書を選びます。SNI非対応、仮想ホストの優先順位ミス、移行後の設定漏れがあると、接続が失敗したり別サイトの証明書を返したりします。

3.Cloudflareとオリジンの暗号スイートが合わない

オリジンが古い暗号方式だけに限定されている、逆に特定の新しい方式だけを不適切に許可している、TLS設定変更後に共通方式がなくなった場合があります。Cloudflare公式も、Cloudflareが使う暗号スイートとオリジンの対応方式の不一致を代表原因に挙げています。

4.証明書・秘密鍵・チェーンの読み込みに失敗している

証明書更新後にWebサーバーが設定を再読み込みできていない、証明書と秘密鍵が一致しない、ファイル権限や設定パスが誤っていると、オリジンは正しいTLS応答を返せません。更新時刻とWebサーバーの起動・再読込ログを照合します。

5.負荷や防御機器がハンドシェイクを途中で切っている

高負荷、同時接続上限、レート制限、WAF、ロードバランサー、侵入防御がTLS接続をリセットする場合があります。525が断続的なら、正常時と失敗時の接続元IP、時刻、負荷、SSLエラーを比較します。

6.移行・動的IP変更で別のオリジンへ接続している

Cloudflare DNSが古いIPを指す、ホスティング側でIPが変わった、IPv4とIPv6で異なるサーバーへ着くと、想定外のTLS設定へ接続します。DNSは現在値を保存し、ホスティングの正式なオリジン情報と照合します。

最初に保存する情報

  • 525が出た完全なURLとホスト名
  • 日時、タイムゾーン、Ray ID
  • CloudflareのSSL/TLSモード
  • Cloudflare DNSのA・AAAA・CNAME現在値
  • 対象オリジンIPと443番待受の確認結果
  • 証明書更新・移行・Webサーバー変更の日時
  • 常時発生か断続的か、特定地域だけか
  • 同時刻のWebサーバー・SSL・ファイアウォールログ

秘密鍵、管理画面の認証情報、完全な設定ファイルは共有しません。サポートへ渡す証明書情報は公開証明書、対象ホスト名、期限、発行元、チェーン、エラー内容に限定し、秘密鍵はサーバー外へ出さないでください。

どの段階でTLS接続が失敗したか特定する

確認層見るもの判断の手がかり
CloudflareRay ID、SSL/TLSモード、Origin Analytics525の発生時刻と対象ホスト
DNSA・AAAA・CNAME、現在のオリジン正しいTLSサーバーへ向くか
ネットワーク443番、接続リセット、レート制限TLS開始前に切れていないか
Webサーバー仮想ホスト、SNI、証明書設定、再読込対象ホストへ正しい設定を出すか
TLSバージョン、暗号スイート、ハンドシェイクログ共通方式があり会話が完了するか
WordPressURL設定、直前更新、混在コンテンツTLS復旧後の表示に別問題がないか

ホスティングには、対象ホスト名をSNIとして指定したTLS接続試験を依頼します。IPアドレスだけをブラウザで開く試験では、正しい仮想ホストが選ばれず、実際のCloudflare接続と条件が変わることがあります。

WordPressのログはTLSより後の処理を調べる資料です。525の時刻にWordPressアクセスログがないなら、PHPへ届く前に止まった可能性が高いです。調査設定を変更する場合はWordPress公式のデバッグ手順に従い、バックアップまたはテスト環境を用意します。

SNI・証明書提示・暗号方式を照合する精密検査設備

原因別の安全な直し方

1.現在のオリジンでHTTPS待受を復旧する

Apache、Nginx、LiteSpeed、ロードバランサーなどが対象IPの443番で動作し、Cloudflareからの接続を受け付ける状態へ戻します。ファイアウォールは全面無効化せず、Cloudflare公式IP範囲から必要ポートへの正規通信をログと照合して扱います。

2.対象ホスト名の仮想ホストとSNIを整合させる

`example.com`、`www.example.com`、管理用サブドメインなど、実際にCloudflareが接続するホスト名をWebサーバー設定へ登録します。既定サイトが別証明書を返さないか、IPv4とIPv6で同じ設定が読み込まれるかも確認します。

3.証明書と秘密鍵を正しい組み合わせで読み込む

証明書更新後は、設定テストを通してから安全に再読込します。秘密鍵は再発行・保管手順に従い、チャットやメール本文へ貼りません。証明書検証まで進んで526になる場合はWordPressの526エラーを直す確認順へ切り替えます。

4.対応TLSバージョンと暗号方式を安全にそろえる

古く危険なTLSや暗号方式を復活させるのではなく、Cloudflareとオリジンが安全に共有できる現行構成へ更新します。Webサーバー、OS、TLSライブラリが古い場合は、設定一行だけでなく提供元のサポート範囲と更新計画を確認します。

5.断続的な接続リセットと負荷を直す

正常時と失敗時のSSLログ、同時接続数、CPU、メモリ、ロードバランサー状態を比較します。自動防御がCloudflare共有IPを攻撃元と誤認している場合は、実訪問者IPの復元と制限条件を直し、防御そのものは残します。

6.DNSと移行先のTLS設定を一致させる

サーバー移行時は、切り替え先へ先に証明書と仮想ホストを用意し、Cloudflare DNSを対象限定で変更します。移行後のリダイレクト問題はWordPressのリダイレクトループを直す手順、HTTP素材の警告はMixed Contentを直す手順で分けて確認します。

CloudflareとオリジンのTLS接続が安全に成立した復旧設備

やってはいけない対処

  • SSL/TLSモードをFlexibleへ下げたまま放置する
  • 443番や管理ポートを全送信元へ無条件開放する
  • ファイアウォール、WAF、レート制限を恒久停止する
  • 古いTLS・危険な暗号方式を原因確認なしで復活させる
  • 証明書・秘密鍵・DNSを同時に変更する
  • 秘密鍵や完全な設定ファイルを外部へ送る
  • IP直打ちだけの試験でSNI設定を正常と判断する
  • Cloudflareを停止して表示できたことだけで解決とする

復旧後の確認チェックリスト

  • Cloudflare経由の主要URLがHTTPSで200を返す
  • 対象ホスト名で正しい仮想ホストが選ばれる
  • 443番が必要な送信元から安定して応答する
  • SSLログに新しいハンドシェイクエラーがない
  • 525が別地域・別回線でも再発しない
  • CloudflareのSSL/TLSモードが意図した安全な設定である
  • IPv4とIPv6で同じ証明書・TLS構成が使われる
  • 管理画面、保存、REST API、フォームが正常である
  • リダイレクトループとMixed Contentがない
  • 証明書期限とTLS障害を監視できる

ホスティングへ伝える情報

525が出たホスト名、時刻、Ray ID、CloudflareのSSL/TLSモード、オリジンIP、断続性、直前の証明書・DNS・Webサーバー変更を伝えます。対象ホスト名をSNIに指定し、443番、証明書提示、TLSバージョン、暗号スイート、接続リセットを調べてほしいと依頼します。

Cloudflareへは、ホスティング側のSSLログと調査結果をそろえて相談します。CloudflareのOrigin Analyticsで`originResponseStatus`が0となる時刻と、オリジンSSLエラーを対応させると原因を絞りやすくなります。

525エラーのよくある質問

証明書が期限内なら525ではありませんか?

期限内でも525は起こります。443番停止、SNI不一致、共通暗号方式なし、秘密鍵の読み込み失敗、接続リセットなど、証明書の有効期限より前の段階でハンドシェイクが失敗することがあります。

525と526のどちらを先に直しますか?

表示されたコードに従います。525はTLS会話の成立、526はFull (Strict)での証明書検証が中心です。525を直した後に526へ変わった場合は、接続が一段進み、次に証明書検証の問題が見えた可能性があります。

WordPressプラグイン停止で直りますか?

通常、525はWordPressのPHPより前のTLS層で発生します。プラグインがWebサーバー停止や防御設定変更の引き金になった特別なケースを除き、最初の確認は443番、SNI、TLS、SSLログです。

525はSEOへ影響しますか?

GoogleのHTTPステータス資料では、5xxが増えるとクロールが一時的に遅くなり、長期間継続するURLはインデックスから外れる可能性があります。復旧後に主要URLの200応答とSearch Consoleの状況を確認します。

まとめ

525 SSL Handshake Failedは、Cloudflareとオリジンサーバー間でTLSハンドシェイクを完了できない状態です。ブラウザ側の鍵マークだけでは、オリジン区間の正常性を判断できません。

  • Ray ID、時刻、ホスト名、SSL/TLSモードを保存する
  • 443番、SNI、証明書提示、TLS、暗号方式を順に確認する
  • 525の会話失敗と526の証明書検証失敗を分ける
  • 暗号化や防御を弱めず、原因設定だけを修正する
  • 復旧後はHTTPS、WordPress機能、SSLログ、5xx再発を確認する

-速度改善・安全対策