# Cloudflare で HTTPS 化
本記事は以下の記事を参考にさせていただきました。
- Herokuで独自ドメイン + HTTPSに対応する - Qiita (opens new window)
- HTTPSを実現。Heroku + Cloudflare (opens new window)
# 1. 作業
サイトを Cloudflare に登録している前提で話を進めます。 Cloudflare に登録していれば、あとは簡単に設定できます。
# Step 1. SSL
Crypto >SSL という設定項目に Flexible
という設定をいれます。
# Step 2. Automatic HTTPS Rewrites
Crypto >Automatic HTTPS Rewrites という設定を On
にします。
# 2. 補足
# 2.1. Step 1 への補足
Crypto > SSL という設定項目に Flexible
という設定を
すると以下のような構成になります。
設定の反映に 24 時間必要だそうです。
ユーザ <-- HTTPS --> Cloudflare <-- HTTP --> ウェブサーバ
上記のような構成を英語の Wikipedia では TLS termination proxy, 日本語の Wikipedia では SSL オフロードと表現されています。
ちなみに off
の場合は、以下のようになります。
ユーザ <-- HTTP --> Cloudflare <-- HTTP --> ウェブサーバ
Strict
を設定した場合は、以下のようになります。
自身のウェブサーバも HTTPS 通信するように設定する必要があります。
ユーザ <-- HTTPS --> Cloudflare <-- HTTPS --> ウェブサーバ
Cloudflare の雰囲気がわかって面白かったです笑
タダ!なんと甘美な響き! どうしてタダなんだ? エッ…これいいの?
無料でSSL使える時代きてた!CloudFlare最高!!!(?) (opens new window)
# 2.2. Step 2 への補足
Automatic HTTPS Rewrites という設定を On
にすると、
これをしておくと HTTP で接続されたものを
301 リダイレクトで HTTPS に回してくれます。
別にいれないといけない設定ではないのですが、 やっておいた方が安パイかなという気がします。
To redirect traffic for all subdomains and hosts in your domain, enable the Always Use HTTPS feature in the Cloudflare Crypto app.
How do I redirect all visitors to HTTPS/SSL? - Cloudflare Support (opens new window)
# 3. セキュリティ的には大丈夫なの?
Cloudflare とウェブサーバの間って HTTP になっちゃうけど大丈夫なのかな? って思ったけど、まあ大丈夫という保証はないけど、 そこまで気にする必要はないよねってことらしいです。
SSL CDN, non-SSL origin; How secure is this? (opens new window)
Question:
How secure is a setup that consists of an SSL-protected CDN and a http-only origin? In other words, the client connects to the CDN using SSL, but the CDN talks to the origin via http.Answer:
Generally, man in the middle attacks occur in locations with public wifi. But what about CDN data centers? Is there enough vulnerability for me to look for different options?
Cloudflare, Heroku, Security でググったら Cloudflare のページがでてきた。
設定は Flex
で、って書いてあるけど、安全とは書かれていない。
でも、本当にそうなのかは、わかりません。 全画面でブラウザに危険!と表示されることはなくなるので、やらないよりはマシかなと思います。
それに Cloudflare ページにも Flex
って設定書き込まれてるし、
まあ良いのかなって気もしなくはなくはないような...
こんなこと言い出したら、じゃあ Heroku の中で管理しているファイルは安全なのか? みたいな話にもなるしな... この辺のどの程度、手の入れるべきなのかなどの、考え方が、正直わかりません。
# 4. SEO 的には大丈夫なの?
HTTPS を導入する主な理由は、セキュリティです。 セキュリティがイマイチとなると、これを使う意味はあるのでしょうか?
SEO があるかなと思います。 HTTPS 対応していないと、どのくらい影響があるかわからないのですが、 Google からは低評価を喰らうらしいです。
Google にバレるかどうか、という観点で行くとやろうと思えばバレるけど、 そこまでしてるのかと聞かれると疑問な気もします。
もしバレてたらブラウザに危険!と表示される可能性がありますが、 いまのところ自分のサイトではそういったことはありません。
# 5. おわりに
ここまで以下のように見てきました。
以上になります。ありがとうございました。