CommunityTip - セキュリティに関するFAQ最初にお読みくださ

投稿する前にお読みください

この投稿およびリンク先に目を通したうえで、右上の :search: ボタンを使って問題を検索してください。この「コミュニティからのヒント」には、SSL/TLSに関して頻出する質問とその回答が掲載されています。 :search: により、さらなるアドバイスと洞察を得ることができます。

背景
このセキュリティFAQは、 Cloudflare SpectrumCloudflare Access、Free Universal SSL、Edge証明書、自己署名証明書、オリジン証明書、TLS、 HSTS、 SSL/TLS アプリに関するその他すべての事項をカバーしています。

リダイレクトループ
Cloudflare SSL/TLSアプリの「概要」タブで「フレキシブルSSL」モードを使用し、オリジンでHTTPSを強制している場合は、それがリダイレクトループの原因になっている可能性が最も高いです。フレキシブルモードは、お客様のオリジンとCloudflareとの間のトラフィックを暗号化 しない ことで機能します。オリジンが httpsを強制し、リクエストが Cloudflare にリダイレクトされ、Cloudflare が同じ http のリクエストを再度送信しようとするため、無限ループが発生するのです。この問題については、こちらのナレッジベースガイドで説明しています – Flexible SSLがリダイレクトループを引き起こす理由

この問題には、いくつかの解決法があります:

SSLについては、こちらのコミュニティチュートリアルで詳しく説明しています。
[Step 2: Setting up SSL with Cloudflare]Step 2: Setting up SSL with Cloudflare).

深すぎるサブドメイン/カスタム証明書と拡張検証証明書
Cloudflareがお客様のゾーンで「Universal SSL」を正常にプロビジョニングした場合、これらの証明書は第1レベルのサブドメイン (*.example.com)のみをカバーし、*.*.example.com)はカバーしないことに注意してください:

  • 機能する - www.example.com
  • 機能する - example.com
  • 機能する - test.example.com
  • 機能しない - www.test.example.com
  • 機能しない - staging.www.example.com

複数レベルのサブドメインをカバーする証明書が必要な場合は、 カスタムホスト名入りの専用SSL証明書 を購入することができ、購入時に複数レベルのどのサブドメインでも申告することができます。

Cloudflareが提供するUniversal SSL証明書ではなく、お客様独自の証明書の使用をご希望の場合は、Businessプランにアップグレードし、 カスタム証明書 をアップロードする必要があります。

Cloudflareは現時点では「拡張検証(EV)」証明書を提供していませんのでご注意ください。拡張検証証明書を使用したい場合は別途購入し、 カスタムSSLアップロード を使ってCloudflareアカウントにアップロードする必要があります。

オプションとして、 Advanced Certificate Manager を購入し、カスタムホスト名入りの専用証明書を作成することができます。

Advanced Certificate Managerの説明
専用SSL証明書の管理

サポート対象のクライアント(SNIのみ)

Cloudflareの有料プラン(Pro、Business、Enterprise)のSSL証明書は、すべてのデスクトップブラウザで動作しますので、互換性が心配な場合や、古いブラウザを使用されているユーザーが多い場合は、有料プランへのアップグレードをお薦めします。

専用証明書とUniversal SSLはともに、楕円曲線デジタル署名アルゴリズム(ECDSA)を用いたSNI(Server Name Indication)証明書を使用しています。SNI証明書とECDSA証明書は、下記のモダンブラウザで動作します。

Windows Vista、OS X 10.6以降にインストールされたデスクトップブラウザ:

  • Internet Explorer 7
  • Firefox 2
  • Opera 8(TLS 1.1 有効)
  • Google Chrome v5.0.342.0
  • Safari 2.1

モバイルブラウザ

  • iOS 4.0用のMobile Safari
  • Android 3.0(Honeycomb)以降
  • Windows Phone 7

なお、お客様のサイトと通信するAPIサービスやPayment Gatewayはすべて、Cloudflareを介してお客様のWebサイトに接続するために、SNIとECDSAをサポートしている必要があります。

SSLモード - SSLからオリジンまで

Cloudflareでは、以下のSSLモードを提供しています。

  1. Flexible SSL:SSLの適用はCloudflareのエッジサーバーまでで終了します。お客様のクライアントとCloudflareの間はすべて暗号化されますが、Cloudflareとお客様のオリジンの間は暗号化されません。この場合、証明書は必要ありません。
  2. Full SSL:SSLの適用はCloudflareのエッジサーバーまでで終了しますが、その後再び暗号化され、すべて暗号化された状態でお客様のサーバーに送り返されます。SSL証明書をお客様のサーバーにインストールする必要があります。このオプションでは自己署名証明書を使用できます。
  3. Full SSL(Strict):SSL Fullと同じですが、GlobalSignなどのCA(認証局)の署名が入った証明書が必要です。Full Strict を有効にしたい場合は、無料のCloudflare オリジン証明書をホストにインストールすることができます。

CloudflareのSSL設定の全体概要については、「こちら & をご覧ください。

FullまたはFull(Strict)の設定オプションを使用する場合は、オリジンのWebサーバーに証明書が必要です。

Full(Strict)オプションを使用する場合は、このSSL証明書が有効で、認証局の署名入りであるか、当社のオリジンCAサービスを利用していなければなりません。

混在コンテンツエラーとリダイレクトループ

HTTPSでの接続時にブラウザに緑色の南京錠が表示されない場合、混在コンテンツの問題が発生している可能性が高いです。混在コンテンツエラーとは、WebサイトがHTTPSで読み込まれているにもかかわらず、リソースの一部が HTTPで読み込まれていることを意味します。この問題を解決するには、ソースコードを編集し、すべてのリソースを相対パスで読み込むか、直接HTTPSで読み込むように変更する必要があります。

たとえば、画像を完全なURLで読み込む場合:

<img src="http://example.com/image.jpg"/>

次のURLに変更したい場合:

<img src="//example.com/image.jpg"/>

http:を削除することで、ブラウザは訪問者が既に使用しているプロトコルを使用します。詳細についてはこの記事をご覧ください。あるいは、Mixed-Content Fixerプラグインをインストールすると、これらのセクションでhttpをhttpsに自動的に置き換えてくれます。Wordpressでは、 SSL Insecure Content Fixer プラグインで成功しています。

別のオプションとして、 HTTPS の自動リライト 機能を有効にすると、これらのエラーを自動的に修正できる可能性があります。ただし、JavaScriptやCSSで読み込まれたリソースは自動的に書き換えられず、混在コンテンツの警告が表示されますのでご注意ください。

これらの問題は、CloudflareのFlexible SSLサービスのユーザーに多く見られます。利用しているCloudflareのSSLサービスがFullモードかFlexibleモードかは、Cloudflareダッシュボードにログインし、SSL/TLSアプリの「概要」タブをクリックし、SSLの設定で確認することができます。

Flexible SSLユーザー

Flexibleモードは、お客様のオリジンとCloudflareとの間のトラフィックを暗号化 しない ことで機能します。オリジンが httpsを強制し、リクエストが Cloudflare にリダイレクトされ、Cloudflareが同じ http のリクエストを再度送信しようとするため、無限ループが発生するのです。お客様のサイトがやはりHTTPSリダイレクトを強制していることが確認できました。

この問題には、いくつかの解決法があります:

さらに、CloudflareはX-Forwarded-Protoヘッダーも追加します。このヘッダーは、ユーザーがサイトにアクセスする際に使用したプロトコルに応じて、次のようにhttpまたはhttpsのいずれかになります。

X-Forwarded-Proto:https

Flexible SSLが設定されており、訪問者がCloudflareにHTTPSでリクエストする場合、CloudflareはオリジンにHTTPでリクエストします。このシナリオでは、オリジンサーバーはこのヘッダーを検査することで、訪問者が HTTPS を使用していたことを知ることができます。

証明書がプロビジョニングされていない
DNSのアプリレコードを見て、( example.com )と www.example.com または example.com がオレンジ色のクラウドになっていることを確認してください。

Cloudflare Universal SSL証明書をプロビジョニングするには、必要なレコードをすべてオレンジ色のクラウドにする必要があります。DNSレコードをオレンジ色のクラウドにすると、Cloudflare Universal SSL証明書のプロビジョニングが開始されます。

この方法の詳細については、以下のクイックセットアップガイドをご覧ください:

その他のSSL/TLSエラーの解決

エラー520:Webサーバーが不明なエラーを返しています
エラー521:Web サーバーがダウンしています
エラー525:SSLハンドシェイクに失敗しました
エラー526:SSL証明書が無効です

さらにヘルプが必要な場合
他のCloudflareユーザーによるこのコミュニティがお客様をサポートできるかもしれません。 Cloudflareにログイン して、コミュニティに質問を投稿してください。コミュニティに投稿する際は、表示されている特定のエラーメッセージ、そのエラーが発生しているURL、エラーのスクリーンショット、エラーを再現するための手順など、できるだけ多くの情報を含めるようにしてください。お客様が既にお試しになったトラブルシューティングの方法も記載してください。

専門家の意見をぜひお寄せください
この「コミュニティからのヒント」では、コミュニティの専門家やこの問題に詳しい方からのコメントを募集中です。次のようなコメントをお待ちしています:「必ず試すべき3つのこと」、「最初に実行すること」、「私の経験では」など。

これはCloudflareコミュニティからのヒントです。他のヒントを確認するには こちらをクリックしてください

Çevirmek…traduzir…翻译…traducir…Traduire…Übersetzen…:greyg: このヒントを翻訳する

AQSECT 030321