ブラウザのアドレスバーに鍵マークが付いていれば、その通信は安全だと思いがちです。
ところが 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 / Workers | Full (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. 「鍵マーク付いてるから大丈夫」という誤った安心
一番怖いのはこれ。運用者本人が安全だと思い込んでしまうことで、本来やるべき対策が後回しになります。
確認・変更手順
- Cloudflare ダッシュボード → 対象ドメイン
- 左メニュー「SSL/TLS」→「概要」
- 現在のモードを確認
- 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 証明書をオリジンサーバーに導入する具体手順を書く予定です。