web-dev-qa-db-ja.com

CloudflareがHTTPSにリダイレクトしない

私はそれを設定し、「自動HTTPSリライト」を「オン」に設定しますが、これはhttpを介してページが要求されたときにデフォルトでhttpsにリダイレクトされません... URLにhttpsを入れて手動でページにアクセスしていますいいよ.

これを解決する方法はありますか?

4
prizzaloo

「自動HTTPS書き換え」Cloudflareオプションに問題がある場合は、CFがサイト/リソースがHTTPS対応かどうかを判断できない可能性があります。 自動HTTPS書き換え のCFドキュメントから:

HTTPSがサポートされていないURLを特定するために、特にEFFのHTTPS EverywhereおよびChromeのHSTSプリロードリストのデータを使用します。

すべてのユーザーを無条件でHTTPSにリダイレクトするには、ページルールを作成する方法が推奨されます。 CFサポートドキュメント: すべての訪問者をHTTPS/SSLにリダイレクトする方法

Cloudflareを使用するときに訪問者をHTTPSにリダイレクトする最も効果的な方法は、 ページルール を使用することです。 Originの設定を使用してHTTPSにリダイレクトすることもできますが、ページルールはEdgeで処理されるため、サーバーへの応答が速くなり、リクエストが減少します。

「常にHTTPSを使用する」アクションは、HTTP要求をHTTPSにリダイレクトする最も簡単なオプションです。

次の手順では、 ページルール (301リダイレクトとして動作します)を使用するプロセスについて説明します。

Cloudflareページルール301 HTTPからHTTPSへのリダイレクト

  1. Cloudflareにログイン
  2. 左上隅にあるドロップダウンメニューを使用してサイトを選択します
  3. 画面上部のページルールアイコンをクリックします
  4. [ページルールの作成]ボタンをクリックします
  5. Http://*example.com/*と入力しますが、明らかにドメインを変更します。
  6. [設定は次のとおりです]で[+設定を追加]をクリックします
  7. ドロップダウンリストをクリックし、[常にHTTPSを使用する]オプションを見つけてクリックします
  8. 最後に[保存してデプロイ]をクリックします

ただし、多くのユーザーは依然として独自のサーバー構成(つまり、メインサーバー構成、仮想ホスト、または.htaccessファイル)とmod_rewrite(Apache)を使用してリダイレクトを実行します。ただし、CFの「Flexible SSL」オプションでは、サイトがHTTP経由でCFにコンテンツを提供しているため、通常のHTTPSチェックを適用できないため、リダイレクトループに注意する必要があります。 (CFの「Flexible SSL」オプションは、CFからサーバーへの接続ではなく、エンドユーザーからCFへの接続を保護するだけです。)

したがって、.htaccessファイルの上部近くに次のようなものがあります。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://example.com/$1 [R=301,L]

「Flexible SSL」では、HTTPSサーバー変数は常にoff(サイトがHTTP経由でコンテンツを提供しているため)ですが、CloudflareはX-Forwarded-Proto HTTPリクエストヘッダーをリクエストの通過時に設定する必要がありますCloudflareのサーバー。最初の条件を維持することにより、CFを使用しているかどうかに関係なく機能します。常にプロキシ(CF)の背後にいる場合は、最初の条件を削除できます。

...だからHTSTは本当に素晴らしいアイデアではないようです...

HTTPSにコミットしている場合、HSTSは素晴らしいアイデアです。ただし、これは片道チケットです。 (簡単に)HTTPに戻すことはできません。

3
MrWhite