IT

【Cloudflare】【Heroku】HerokuのACMを使ってCloudflareのTLSフル(厳密)と繋げてみる


まあタイトルの通りなのだが。。。
Herokuのカスタムドメインを使ってSSLを ”無料で” 実現する方法として、よく言われているのが、前段にCloudflareを配置して、SSL/TLS設定を「フレキシブル」にしたうえでHerokuに繋げる、というやり方である。
Herokuの無料Dyno(Free Dyno)でカスタムドメインを利用する場合、SSLは対応していないので、前段にCloudflareを配置し、受け口をhttpsにして、CDNから先のHerokuにはnon-SSLで通信させて、とりあえずhttps通信を実現させている。

ただ、CloudflareのSSL/TLS設定はアカウント全体で1つなので、Cloudflare配下に複数のドメイン(サイト)を持つ場合、Herokuのためだけに「フレキシブル」にしておけない、ということもあると思う。
というか実際私はあったのだ。
具体的には、「フル(厳密)」を選択したかったのだが、上述の通りで、Heroku側がSSLに対応していないため、単純にこれを選択するとCloudflare→Heroku間の通信が失敗してHTTP 526エラーが返ってくる。
というわけでこれをどうやって実現したらよいか?を検証した記録。
まあ色々検索すれば出てくるのだが、自分のための備忘録を兼ねて。