前置き
「heroku ssl 無料」とかで、ググると
- SSLの使用量は無料
- Let's encryptを使えば無料
- ただし、paid dynoを使う必要あり
みたいな記事が多いと思いますが、 完全無料 で 独自ドメイン + HTTPSに対応する方法を見つけたので、共有しておきます。
環境
- お名前.comでドメインを取得済み
- herokuのアプリはデプロイ済み
を想定して書いています。
Cloudflareを使う
Cloudflare
という文字を見て、**「ああ、それかよ」**ってなった方は、この記事を読む意味はないと思われます。
CloudflareはCDNとして有名っぽいのですが、SSLのサービスも提供しています。
仕様イメージ
クライアント(PC)からCloudflareを踏んで、Herokuに流しています。
手順
1. https://www.cloudflare.com にアクセスしてアカウントを作る
2. ドメインを入力する
3. CNAMEとかを設定する
ここでは、herokuのapp名をexample
、取得したドメインもexample
の画像です。適宜読み替えてください。
4. Planをfreeに
5. DNSを変える
最後のところでDNSをこれにしろって言われるので変える。
お名前.comにログインして、サイドバーからネームサーバーの変更
を選ぶ。
変更したいドメインにチェック入れて、さっき指定されたドメインを設定しておく。
(*画像では一致してないが、本当は一致させる)
6. アプリケーションをSSLに対応させる
Railsを使っていたので、production.rb
の force_ssl を true にして、Herokuにpushする。
# config/environments/production.rb
...
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
config.force_ssl = true
...
7. cryptタブからsslをfullにする
8. 一日待つ(重要)
結構時間がかかるみたいで、設定してから1日ぐらいかかると思っておいた方がいいと思わます。
全然反映されなくて、焦るけど、とりあえず忘れて、1日過ごすのが吉。
1日待って、https://example.com
を叩いてみても、herokuに向いてなかったら、何かがおかしい気がする。
頑張ってdigとか使って調査してみてください。