ブラウザのアドレスバーに鍵マークが付いていれば、その通信は安全だと思いがちです。

ところが Cloudflare を使っている場合、設定によっては「鍵マークは付いているのに、実は途中の通信が暗号化されていない」状態が起こり得ます。今回はその落とし穴、SSL/TLS 暗号化モードの話です。

通信は「2区間」に分かれている

Cloudflare を挟むと、ブラウザからサーバーまでの通信は2つの区間に分かれます。

[ブラウザ] ──①── [Cloudflare] ──②── [オリジンサーバー]
  • 区間①: ブラウザ ⇔ Cloudflare
  • 区間②: Cloudflare ⇔ オリジン(実際にサイトが置いてあるサーバー)

ブラウザの鍵マークが保証しているのは区間①だけ。区間②がどうなっているかは、Cloudflare の SSL/TLS モード設定で決まります。ここを理解していないと「鍵マーク付いてるから安全」という誤解にハマります。

3つのモード

Cloudflare ダッシュボード → SSL/TLS → 概要 で選べるモードは主に3つ。

Flexible(危険)

[ブラウザ] ──🔒HTTPS── [Cloudflare] ──❌HTTP── [オリジン]

区間①は暗号化されるが、区間②は平文(HTTP)。ブラウザには鍵マークが出るので一見安全に見えますが、Cloudflare からオリジンへの通信が盗聴・改ざん可能な状態です。

「とりあえずHTTPSにしたい、でもオリジンの証明書設定が面倒」という時に選ばれがちですが、セキュリティ的には穴

Full(最低ライン)

[ブラウザ] ──🔒HTTPS── [Cloudflare] ──🔒HTTPS── [オリジン]

区間②も暗号化される。ただし、オリジンの証明書が自己署名でもOK(検証しない)。盗聴は防げますが、中間者攻撃には理論上の弱さが残ります。

Full (Strict)(推奨)

[ブラウザ] ──🔒HTTPS── [Cloudflare] ──🔒HTTPS(検証)── [オリジン]

区間②も暗号化され、オリジンの証明書も正しく検証する。これが本来あるべき状態です。

どれを選ぶべきか

結論はシンプル。

構成推奨モード
Cloudflare Pages / WorkersFull (Strict)(自動で有効)
自前サーバー + 正規証明書Full (Strict)
自前サーバー + Cloudflare Origin証明書Full (Strict)
証明書が用意できないエンジニアに相談(Flexible で妥協しない)

Cloudflare Pages を使っている場合は、Cloudflare 側がオリジンも含めて証明書を管理してくれるので、基本的に Full (Strict) 相当で動きます。やきいもテックも Cloudflare Pages 構成なので、この区間②の心配は実質ありません。

問題になりやすいのは「VPS やレンタルサーバーに自前で立てたサイトを Cloudflare に通している」ケース。ここで Flexible のまま放置されている例をよく見ます。

Flexible が危ない具体例

Flexible モードだと、こういうことが起こり得ます。

1. ログインフォームの中身が平文で流れる

ブラウザ → Cloudflare は暗号化されていても、Cloudflare → オリジンが HTTP。ID・パスワードが平文で区間②を流れるので、その経路を盗聴できる立場の攻撃者に筒抜けです。

2. リダイレクトループ

オリジン側が「HTTP で来たら HTTPS にリダイレクト」を設定していると、Cloudflare が HTTP で叩く → オリジンが HTTPS にリダイレクト → Cloudflare がまた HTTP で叩く…の無限ループになり、サイトが ERR_TOO_MANY_REDIRECTS で開かなくなります。これ、原因が分からず数時間溶かす定番トラブル。

3. 「鍵マーク付いてるから大丈夫」という誤った安心

一番怖いのはこれ。運用者本人が安全だと思い込んでしまうことで、本来やるべき対策が後回しになります。

確認・変更手順

  1. Cloudflare ダッシュボード → 対象ドメイン
  2. 左メニュー「SSL/TLS」→「概要
  3. 現在のモードを確認
  4. Flexible になっていたら要対処

Cloudflare Pages 利用なら、そもそもこの設定画面に区間②の概念が出てこない(CFが管理)ので心配無用。自前オリジンがある場合のみ、Full (Strict) に上げられるか確認します。いきなり Strict にして証明書エラーでサイトが落ちることもあるので、Full → Full (Strict) と段階的に上げて動作確認するのが安全です。

ハマりどころ

1. Strict にした瞬間サイトが 526 エラー

オリジンの証明書が無効・期限切れ・自己署名だと、Full (Strict) で 526 Invalid SSL certificate が出ます。Cloudflare Origin CA 証明書(無料・15年有効)をオリジンに入れると解決します。

2. 「Flexible でも動いてるからいい」という判断

動くことと安全なことは別問題。動いている = 安全、ではない。Flexible は「動くが危険」の典型。

3. Page Rules で一部だけ別モードにできる罠

特定パスだけ SSL モードを変える Page Rule を昔設定して忘れている、というケース。全体設定を直しても直らない時は Page Rules / Configuration Rules も確認。

まとめ

  • Cloudflare 経由の通信は 区間①(ブラウザ⇔CF)と区間②(CF⇔オリジン) に分かれる
  • ブラウザの鍵マークは区間①しか保証しない
  • Flexible = 区間②が平文。鍵マークは出るが危険
  • Full (Strict) が本来あるべき状態
  • Cloudflare Pages 利用なら自動で安全側。自前オリジンがある人は今すぐ確認

「HTTPS にした=安全」で止まらず、どの区間が暗号化されているかまで意識すると、Web の通信の安全性が一段クリアに見えてきます。

次回は、Cloudflare Origin CA 証明書をオリジンサーバーに導入する具体手順を書く予定です。