Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

HTTPS を強制し、すべてのトラフィックを暗号化する(Free、Pro、Business)

最終更新 Markdown で表示Agent セットアップ

Cloudflare 上の HTTPS には、2 つの独立した接続があります。訪問者から Cloudflare、および Cloudflare からオリジンサーバーです。エンドツーエンドのセキュリティには、両方を暗号化する必要があります。このガイドは次の 5 段階で進めます。

  1. SSL/TLS 暗号化モードを設定します。
  2. すべての HTTP リクエストを HTTPS へリダイレクトします。
  3. 最小 TLS バージョンと HSTS で HTTPS 構成を強化します。
  4. ページ上のサードパーティスクリプトを監視します。
  5. 設定を確認します。

中核の手順は、Free、Pro、Business プランで利用できます。

SSL/TLS 暗号化モードを設定する

SSL/TLS 暗号化モードは、Cloudflare がオリジンサーバーへどう接続するかを制御します。エンドツーエンド暗号化には Full (strict) を使います。両方の接続を暗号化し、オリジン証明書を検証します。利用できるすべてのモードの詳細な比較は、暗号化モード を参照してください。

現在のモードを確認する

  1. Cloudflare ダッシュボードで、SSL/TLS Overview ページを開きます。

    Overview を開く ↗
  2. ページに表示されている現在の暗号化モードを確認します。

Cloudflare Origin CA 証明書をインストールする

オリジンサーバーに有効な SSL 証明書がない場合は、無料の Cloudflare Origin CA 証明書をインストールします。Origin CA 証明書の有効期間は最大 15 年で、Cloudflare から信頼されます。インストール後に暗号化モードを Full (strict) に設定できます。

オリジンに、一般に信頼されている認証局の有効な証明書がすでにある場合は、暗号化モードを Full (strict) に設定する に進みます。

1. Origin CA 証明書を作成する

  1. Origin Server ページを開きます。

    Origin Server を開く ↗
  2. Origin Certificates タブで、Create Certificate を選択します。

  3. 次のいずれかを選びます。

    • Generate private key and CSR with Cloudflare: 秘密鍵の種類は RSA または ECC です。
    • Use my private key and CSR: テキスト欄に CSR(Certificate Signing Request)を貼り付けます。
  4. SSL 暗号化で保護するホスト名(ワイルドカードを含む)を列挙します。ゾーンの apex と第 1 レベルのワイルドカードホスト名は、デフォルトで含まれます。

  5. Certificate Validity の期間を選びます。

  6. Create を選択します。

  7. Key Format を選びます。

    • OpenSSL を使うサーバー(Apache や NGINX など)は、一般に PEM ファイル(Base64 エンコードの ASCII)を想定しますが、バイナリの DER ファイルでも動作します。
    • Windows と Apache Tomcat を使うサーバーは、PKCS#7(.p7b ファイル)が必要です。
  8. 署名済みの Origin CertificatePrivate Key を、それぞれ別のファイルにコピーします。セキュリティ上の理由で、この画面を閉じると Private Key は再表示できません。

  9. OK を選択します。

2. オリジンサーバーに証明書をインストールする

  1. Origin CA 証明書をオリジンの Web サーバーにアップロードします。

  2. Web サーバーの設定を更新し、証明書を使うようにします。サーバー別のインストール手順は、Origin CA 証明書 を参照してください。

  3. (一部のサーバーで必須)Cloudflare CA ルート証明書 をオリジンサーバーにアップロードします。

  4. オリジンの Web サーバーで SSL とポート 443 を有効にします。

暗号化モードを Full (strict) に設定する

オリジンサーバーに有効な証明書をインストールしたあと、次の手順で暗号化モードを Full (strict) に設定します。

ダッシュボードで暗号化モードを変更するには:

  1. Cloudflare ダッシュボードで SSL/TLS Overview ページを開きます。

    Overview を開く ↗
  2. 暗号化モードを選びます。

API で暗号化モードを変更するには、URI パスの設定名に ssl を指定し、value パラメーターに希望する設定(offflexiblefullstrict、または origin_pull)を入れて PATCH リクエストを送信します。

すべての HTTP リクエストを HTTPS へリダイレクトする

エッジ証明書が有効でも、訪問者は暗号化されていない HTTP 接続でリソースにアクセスできます。これを直すには、次の 2 つの設定を併用します。

  1. Always Use HTTPS は、HTTP リクエストを HTTPS へリダイレクトします
  2. Automatic HTTPS Rewrites は、ページ HTML 内の混在コンテンツ参照を修正します

Always Use HTTPS をオンにする

Always Use HTTPS は、すべての HTTP リクエストを、オリジンに届く前に HTTPS へリダイレクトします。

  1. Cloudflare ダッシュボードで、SSL/TLS Overview ページを開きます。

    Overview を開く ↗
  2. SSL/TLS 暗号化モードOff になっていないことを確認します。暗号化モードが Off のとき、Always Use HTTPS オプションはダッシュボードに表示されません。

  3. Edge Certificates ページを開きます。

  4. Always Use HTTPS をオンにします。

  1. SSL/TLS 暗号化モードOff になっていないことを確認します。

  2. URI パスの設定名を always_use_httpsvalue パラメーターを "on" にして PATCH リクエストを送ります。

Automatic HTTPS Rewrites をオンにする

Automatic HTTPS Rewrites は、ページ HTML 内の HTTP リソース URL を HTTPS に書き換えることで、混在コンテンツエラーを防ぎます。CMS でホストしているコンテンツや埋め込みのサードパーティリソースなど、すべてのアセット URL を自分で制御できないサイトで役立ちます。

  1. Cloudflare ダッシュボードで、Edge Certificates ページを開きます。

    Edge Certificates を開く ↗
  2. Automatic HTTPS Rewrites のトグルを On にします。

URI パスの設定名を automatic_https_rewritesvalue パラメーターを "on" にして PATCH リクエストを送ります。

HTTPS 構成を強化する

暗号化モードを設定し、HTTP トラフィックをリダイレクトしたあと、最小 TLS バージョンの設定、HTTP Strict Transport Security (HSTS) の有効化、TLS 1.3 の有効化で構成を強化します。

最小 TLS バージョンを設定する

TLS 1.0 と 1.1 には既知の脆弱性があり、安全とは見なされません。最小 TLS バージョンを 1.2 にすると、古いプロトコルを使うクライアントからの接続をブロックします。どのバージョンを選ぶかの指針は、TLS プロトコル を参照してください。

  1. Cloudflare ダッシュボードで、Edge Certificates ページを開きます。

    Edge Certificates を開く ↗
  2. Minimum TLS VersionTLS 1.2 を選択します。

URI パスの設定名を min_tls_versionvalue パラメーターを "1.2" にして PATCH リクエストを送ります。

TLS 1.3 をオンにする

TLS 1.3 は、TLS 1.2 より高速なハンドシェイクと高いセキュリティを提供します。

  1. Cloudflare ダッシュボードで、Edge Certificates ページを開きます。

    Edge Certificates を開く ↗
  2. TLS 1.3 のトグルを On にします。

URI パスの設定名を tls_1_3value パラメーターを "on" にして PATCH リクエストを送ります。0-RTT(Zero Round Trip Time Resumption)もオンにする場合は、値を "zrt" にします。

HSTS をオンにする

HTTP Strict Transport Security (HSTS) は、リンクやリダイレクトが HTTP へ誘導しようとしても、ブラウザーがサイトへ HTTPS のみで接続するように伝えるレスポンスヘッダーを追加します。HSTS はプロトコルダウングレード攻撃から保護します。

HSTS をオンにする前に、次の前提条件を確認します。

  • ドメインで HTTPS が有効で、動作している。
  • DNS レコードが Proxied になっている。
  • どこでも HTTPS を HTTP へリダイレクトしていない。
  1. Cloudflare ダッシュボードで、Edge Certificates ページを開きます。

    Edge Certificates を開く ↗
  2. HTTP Strict Transport Security (HSTS)Enable HSTS を選択します。

  3. ダイアログを読み、I understand を選択します。

  4. Next を選択します。

  5. HSTS の設定を構成します。

    • Max Age Header: 期間を選びます(まず 6 か月から始め、安定を確認したあと 12 か月に延ばします)。
    • Apply HSTS policy to subdomains (includeSubDomains): すべてのサブドメインが HTTPS に対応している場合にオンにします。オンにすると、HTTPS 非対応のサブドメインへアクセスできなくなります。
    • Preload: Max Age Header を 12 か月に設定したあとでのみオンにします。プリロード対象に含めると、初回訪問時のダウングレード攻撃を防げます。プリロードをオンにしたら、hstspreload.org でドメインを申請します。
    • No-Sniff Header: X-Content-Type-Options: nosniff ヘッダーを送ります。ブラウザーの MIME タイプスニッフィングを防ぐためにオンにします。
  6. Save を選択します。

URI パスの設定名を security_header にし、HSTS 設定を含む value オブジェクトを指定して PATCH リクエストを送ります。

暗号スイートを確認する

Cloudflare のデフォルト暗号スイートは、ほとんどのサイトに十分な強い暗号化を提供します。セキュリティ監査やコンプライアンス要件で特定の暗号構成が指定されていない限り、変更する必要はありません。

デフォルトの暗号スイートとカスタマイズ方法の詳細は、暗号スイート を参照してください。コンプライアンス向けの暗号構成は、API で暗号スイートをカスタマイズする を参照してください。

Client-side security でサードパーティスクリプトを監視する

HTTPS は転送中のデータを暗号化しますが、ページが読み込むサードパーティスクリプトは、ブラウザーからデータを持ち出せます。Client-side security はこれらのスクリプトを監視し、想定外の追加を知らせます。

スクリプト監視をオンにする

  1. Cloudflare ダッシュボードで、Security の Settings ページを開きます。

    Settings を開く ↗
  2. (任意)Client-side abuse で絞り込みます。

  3. Continuous script monitoring をオンにします。

検出されたリソースを確認する

監視をオンにしたあと、ドメイン上で検出されたスクリプトの一覧が Cloudflare によって生成されるまで、時間がかかることがあります。

  1. Cloudflare ダッシュボードで、Web assets ページを開きます。

    Web assets を開く ↗
  2. Client-side resources タブを選択します。

  3. 検出されたスクリプトの一覧を確認します。認識できないドメインからの、不明または想定外のスクリプトがないか確認します。

プランによっては、スクリプトが行った接続を確認し、悪意のある活動がないか調べることもできます。設定の詳細は、Client-side security を利用する を参照してください。

設定を確認する

前の段階を終えたら、HTTPS 構成が想定どおり動作することを確認します。

Automatic SSL/TLS を使う

Cloudflare の Automatic SSL/TLS はオリジンサーバーを分析し、オリジンが対応する最も安全な暗号化モードを選びます。ゾーンが Automatic SSL/TLS(新規ゾーンのデフォルト)を使っている場合、Cloudflare はモードを自動で調整し、オリジン証明書が期限切れになっても、より安全性の低いモードへダウングレードしません。

ゾーンが Automatic SSL/TLS を使っているかどうかを確認するには:

  1. Cloudflare ダッシュボードで、SSL/TLS Overview ページを開きます。

    Overview を開く ↗
  2. Automatic SSL/TLSCustom SSL/TLS のどちらが選ばれているかを確認します。Custom が選ばれていて、Cloudflare にモードを自動管理させたい場合は、Automatic SSL/TLS を選択します。

外部ツールでテストする

SSL Labs Server Test を使い、Cloudflare ネットワークの外側から HTTPS 構成を確認します。ドメインを入力し、レポートを確認します。A または A+ の評価は、TLS 構成、証明書チェーン、プロトコル対応が現行のセキュリティ基準を満たしていることを示します。

サポートされている TLS バージョンをテストするには、TLS バージョンを指定して、ウェブサイトまたはアプリケーションへリクエストを送ります。

たとえば TLS 1.1 をテストするには、次の curl コマンドを使います。www.example.com を、ご自身の Cloudflare ドメインとホスト名に置き換えてください。

curl https://www.example.com -svo /dev/null --tls-max 1.1

テスト中の TLS バージョンが Cloudflare によってブロックされている場合、TLS ハンドシェイクは完了せず、次のエラーが返ります。

* error:1400442E:SSL routines:CONNECT_CR_SRVR_HELLO:tlsv1 alert

関連リソース

SSL/TLS

Client-side security

役に立ちましたか?