🌸

さくらのレンタルサーバで Cloudflare を使う

2024/03/16に公開

概要 (ここだけ読めば OK)

さくらのレンサバで Cloudflare を使ってみよう
 ↓
できているひとの記事を参考にしよう
さくらのレンタルサーバ+αで費用を節約しつつ軽めのサイトを作る #SSL - Qiita
 ↓
ERR_TOO_MANY_REDIRECTS
 ↓
上記記事の内容に反するが以下を設定
「エッジ証明書 > 常に HTTPS を使用 をオフ」
 ↓
解決

とりあえずここを読めばOK。
ERR_TOO_MANY_REDIRECTS · Cloudflare SSL/TLS docs

記事を書いた経緯

さくらのレンタルサーバーで Cloudflare を使ってみようと思ったが、SSL の設定で手間取っていた。そこで検索をかけたところ、以下の記事を見つけた。

さくらのレンタルサーバ+αで費用を節約しつつ軽めのサイトを作る #SSL - Qiita

この記事自体は大変参考になったが、記事通りに設定すると、ERR_TOO_MANY_REDIRECTS が発生してしまう。そこでさらに検索をかけたところ、以下の記事が見つかった。

さくらのレンタルサーバがあまりよろしくなかったお話 - Twilight

CloudFlareのFull SSLを使用しようとしたら問題が発生。
さくらのレンタルサーバの443番ポートは80番ポートへの単なるプロキシでした…

  1. クライアントがCloudFlare(https)に対して要求を送信する
  2. CloudFlare(https)がさくらのレンタルサーバ(https)に対して要求を送信する
  3. さくらのレンタルサーバ(https)の443番ポートは80番ポートへのプロキシなので名前解決を行う
  4. 名前解決した結果、当然CloudFlareのIPアドレスが返ってくるので、そのアドレスを使用し接続を試みる
  5. CloudFlare (https) はさくらのレンタルサーバ(https)へ接続を試みてコンテンツを取得する
  6. 2番に戻り無限ループ。 CloudFlareは下記の様なエラーを吐く

あまり知識がないので自信はないが、どうやら上記か上記に似た状態になってしまっているらしい。しかしどこでどういう設定をすればよいのか分からず、しばらく困ってしまった。備忘録として設定手順を以下に記載する。

設定手順

ほぼ以下の記事と同じ設定になるが、一点だけ正反対の設定を行う。他も違うかもしれないが、そこは好みです。
さくらのレンタルサーバ+αで費用を節約しつつ軽めのサイトを作る #SSL - Qiita

DNS の設定

  1. Cloudflare > サイト選択 > DNS > レコード
    1. 該当レコードの「プロキシ ステータス」を 「DNS のみ」に変更
      Cloudflare の画面

オリジン証明書の設定

秘密鍵の生成と CSR の作成

  1. さくらのコントロールパネル > ドメイン/SSL > ドメイン/SSL > 設定 > SSL設定
    1. 「登録設定を始めるSSL証明書の種類を選択」をクリック
    2. 独自SSLを「利用する」をクリック
    3. 「秘密鍵の登録」をクリック
    4. 「秘密鍵の生成」をクリック
    5. 「CSRの作成(任意)」をクリック
    6. 適当に入力して「作成」をクリック
      さくらの画面
      国コード「JP」、都道府県「a」、市町村「a」、会社名「a」
    7. CSR の「内容表示」をクリック
      さくらの画面
    8. CSR をコピー

オリジン証明書の作成

  1. Cloudflare > サイト選択 > SSL/TLS > オリジン サーバー
    1. 「証明書を作成」をクリック
    2. 「自分のプライベート キーと CSR を使用する」を選択
    3. CSR を貼付
    4. 証明書の効力を「15 年」に設定
    5. 「作成」をクリック
    6. オリジン証明書の内容をコピー
      Cloudflare の画面

証明書のインストール

  1. さくらのコントロールパネル > ドメイン/SSL > ドメイン/SSL > 設定 > SSL設定
    1. 「証明書インストール」をクリック
    2. オリジン証明書の内容を貼付
      さくらの画面
    3. 「作成」をクリック
    4. 「中間証明書インストール」をクリック
    5. 中間証明書の内容を貼付
    6. 「作成」をクリック
    7. 以下画像のように「SSL証明書の表示」が上部に出れば OK
      さくらの画面

これでオリジン証明書 (Cloudflare ― オリジンサーバー (さくら) 間の証明書) が設定できた。

さくら側でSSLを有効にする

  1. さくらのコントロールパネル > ドメイン/SSL > ドメイン/SSL > 設定 > 基本設定
    1. 「SSLを利用する」にチェック
    2. 「HTTPSに転送する」にチェック
    3. 「保存する」をクリック

さくらの画面

Cloudflare 側でSSLを有効にする

  1. Cloudflare > サイト選択 > DNS > レコード
    1. 「プロキシ ステータス」を 「プロキシ済み」に戻す
      • これで ブラウザ ― Cloudflare 間の証明書が設定される。(暗号化がオフになっていない場合)
  2. Cloudflare > サイト選択 > SSL/TLS > 概要
    1. 「フル (厳密)」を選択
      Cloudflare の画面
  3. Cloudflare > サイト選択 > SSL/TLS > エッジ証明書
    1. 常に HTTPS を使用 を「オフ」へ変更
      Cloudflare の画面
    2. 最小 TLS バージョン を「TLS 1.2」に設定
    3. 日和見暗号化 を「オン」に設定
    4. TLS 1.3 を「オン」に設定
    5. HTTPS の自動リライト を「オン」に設定

余談

  • 同じさくらのレンタルサーバで、なぜ設定に違いが出るのか謎。2022 年 2 月からサーバーが変わったそうなので、その影響だろうか?
  • 上記作業はすべて Android スマートフォンで行った。
  • たまたま同時期に Publickey さんが同じ構成にトライされており、リプライ欄の情報が参考になった。 (当記事執筆現在も攻撃を受けておられるよう。早期の解決を祈っております)

参考サイト

  1. さくらのレンタルサーバ+αで費用を節約しつつ軽めのサイトを作る #SSL - Qiita
  2. さくらのレンタルサーバがあまりよろしくなかったお話 - Twilight
  3. Cloudflare | ふうせん🎈 FU-SEN
  4. ERR_TOO_MANY_REDIRECTS · Cloudflare SSL/TLS docs

Discussion