ゾーンの SSL/TLS Encryption Mode は、Cloudflare が次の 2 つの接続をどのように管理するかを制御します。1 つは訪問者と Cloudflare の間、もう 1 つは Cloudflare とオリジンサーバーの間です。
flowchart LR
accTitle: SSL/TLS Encryption Mode
A[訪問者] <--接続 1--> B((Cloudflare))<--接続 2--> C[(オリジンサーバー)]
可能であれば、オリジンへの悪意ある接続を防ぐために Full または Full (strict) モードの使用を強く推奨します。
暗号化モードが Cloudflare の SSL/TLS 保護全体のどこに位置するかは、概念 を参照してください。
Automatic SSL/TLS は、SSL/TLS Recommender 向けに開発されたプローブを使い、サイトに設定できるなかで最も安全な暗号化モードを判断します。オリジンの証明書や対応状況に基づき、より安全な選択肢があれば、Automatic SSL/TLS が検出してドメインに適用します。もう一方の Custom SSL/TLS は、従来どおり暗号化モードを手動で設定する動作です。
各暗号化モードがキャッシュに与える影響は、SSL 設定がキャッシュ動作に与える影響 を参照してください。
Automatic SSL/TLS は、SSL/TLS Recommender が開発した高度な手法で、サイトに最も安全な暗号化モードを選びます。Recommender は Cloudflare-SSLDetector ユーザーエージェントでサイトをクロールします。このエージェントは Cloudflare が信頼するボットとして認識され、精度を保つために robots.txt ルールをバイパスします(このエージェントを明示的に対象にしたルールは除きます)。オリジンサーバーから HTTP と HTTPS の両方でコンテンツを取得し、内容の類似度アルゴリズムで一貫性を評価します。現在の SSL/TLS 暗号化モードを把握し、オリジンの証明書と対応状況を評価したうえで、ドメインのセキュリティを最も高く保つよう設定を自動調整します。
自動アップグレードは段階的に適用されます。Automatic SSL/TLS は、まずドメインのトラフィックの 1% だけをアップグレードします。問題がなければ、推奨モードの適用範囲を 10% ずつ増やし、100% になるまで続けます。この過程でオリジン接続が失敗した場合、Cloudflare はアップグレードを中止し、トラフィックを直前のモードへ即座に戻し、失敗を記録します。TLS 関連のエラーなくトラフィックの 100% がアップグレードできたら、ドメインの SSL/TLS 設定を恒久的に更新します。
Flexible から Full/Strict への移行は、特に慎重に扱います。オリジンのスキームが HTTP から HTTPS に変わるとキャッシュキーが変わるためです。この場合、標準の増分に戻す前にキャッシュを温めるため、段階的な引き上げが遅くなることがあります。
-
スキャン頻度: 自動スキャンは現在、おおよそ月 1 回です。設定変更やアップグレードなど、より頻繁に実行される場合もあります。次のいずれかのときにスキャンは止まります。
- サイトがすでに最も安全なモード(例: Full (strict))を使っている
- 自動モードから Custom SSL/TLS に切り替えた
-
アップグレード前のエラー確認: 障害を防ぐため、Cloudflare はゾーンの暗号化モードを上げる前に
5XXエラー(502や503など)を確認し、HTTP と HTTPS の内容が一貫しているかも評価します。 -
アップグレード通知: Cloudflare は、アップグレードされたゾーンの一覧を週次のダイジェストメールで送ります。現在、宛先は Super Admin のみです。
API でゾーンをオプトアウトする場合は、猶予期間の終了日まで(当日を含む)に次の API を呼び出します。
Required API token permissions
At least one of the following token permissions is required:Zone Settings Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/settings/ssl_automatic_mode" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"value": "custom"
}'複数ゾーンをオプトアウトする場合の手順です。
-
次の権限を持つ API トークンを作成します。
Zone - Zone - ReadZone - Zone Settings - ReadZone - Zone Settings - Edit
-
GETリクエスト でゾーン一覧を取得します(account.idで絞り込めます)。curl 'https://api.cloudflare.com/client/v4/zones?account.id=<ACCOUNT_ID>' \ --header 'Authorization: Bearer <CF_API_TOKEN>' \ --header 'Content-Type: application/json' -
オプトアウトするゾーン ID のリストを、1 行に 1 ID(改行区切り)で
zones.txtなどのファイルに保存します。 -
opt-out-multiple-zones.shという bash スクリプトを作成し、次の内容を追加します。zones.txtは同じディレクトリに置くか、パスを合わせてください。opt-out-multiple-zones.shbash for zoneID in $(cat zone.txt); do printf "Opting out ${zoneID}:\n" curl --request PATCH \ --url https://api.cloudflare.com/client/v4/zones/$zoneID/settings/ssl_automatic_mode \ --header 'Authorization: Bearer <CF_API_TOKEN>' \ --header 'Content-Type: application/json' \ --data '{"value":"custom"}' printf "\n\n" done -
コマンドラインを開き、次を実行します。
bash opt-out-multiple-zones.sh
Custom SSL/TLS を使う場合は、カスタムオプションを選びます(Automatic SSL/TLS ではなく、暗号化モードを手動で設定したい場合)。
- Off(暗号化なし): 訪問者と Cloudflare の間、および Cloudflare とオリジンの間で暗号化は使われません。すべて平文 HTTP です。
- Flexible: 訪問者から Cloudflare へのトラフィックは HTTPS で暗号化できますが、Cloudflare からオリジンサーバーへのトラフィックは暗号化されません。TLS に対応していないオリジンでよく使います。可能な場合はオリジン構成のアップグレードを推奨します。
- Full: Cloudflare はオリジンへ接続するとき、訪問者のリクエストプロトコルに合わせます。訪問者が HTTP を使う場合、Cloudflare はオリジンへ HTTP で接続します。HTTPS の場合は、オリジンの証明書を検証せずに HTTPS を使います。このモードは、自己署名証明書や無効な証明書を使うオリジンでよく使われます。
- Full (strict): Full モードと同様ですが、オリジンサーバーの証明書を追加で検証します。証明書は Let's Encrypt などの公開 CA、または Cloudflare Origin CA が発行できます。
- Strict(SSL-Only Origin Pull): 訪問者と Cloudflare の接続が HTTP でも HTTPS でも、Cloudflare は常に証明書検証付きの HTTPS でオリジンに接続します。
ダッシュボードで暗号化モードを変更するには:
-
Cloudflare ダッシュボードで SSL/TLS Overview ページを開きます。
Overview を開く ↗ -
暗号化モードを選びます。
API で暗号化モードを変更するには、URI パスの設定名に ssl を指定し、value パラメーターに希望する設定(off、flexible、full、strict、または origin_pull)を入れて PATCH リクエストを送信します。