概要
この記事で解説する内容は「DNSをCloudFlareにして暗号化モードをフレキシブルにすることで擬似的にHTTPS化が可能」と言ったものではありません。
herokuでは通常、有料プラン(7$/month)に入らないとSSL証明書を発行できませんが、いつかの仕様変更でDNSにAPPNAME.herokuapp.comに向けたCNAMEレコードを設定することで、herokuが発行した証明書を利用できるようになっていました。
(2021/09/20の時点での情報です)
#前提
これを始める前に、herokuからまずはSSLなしの状態でドメインを追加して下さい。
手順
この記事ではDNSにCloudFlareを使用しています。
それ以外のDNSをご利用の方は適宜読み替えて下さい。
1. APPNAME.herokuapp.com形式のURLを取得
APPNAMEの部分はHerokuの"App Name"です。
そのURLでアプリにアクセス出来るか確認して下さい。
2. DNSにCNAMEレコードを追加
対象のドメインのCNAMEレコードを追加します。
ターゲットは1.で取得したAPPNAME.herokuapp.comのURLにして下さい。
サブドメインである必要はありません。
3. (CloudFlareを利用している人のみ) 暗号化モードを「フル」に変更
Herokuが発行しているSSL証明書が利用可能になったので、CloudFlareの"SSL/TLS"タブから暗号化モードを「フル」に変更します。
既にこの設定の場合は変更しなくて大丈夫です。
まとめ
いかがだったでしょうか。
またHerokuの仕様が変更される可能性もあるので、もし出来なかったらコメントで教えて下さい。
誰かのお役に立てると幸いです。