2016/9/22からHerokuのSSL利用が無料になった
https://blog.heroku.com/ssl-is-now-included-on-all-paid-dynos#feedback
既存のSSL endpointを利用している場合でもダウンタイムなしに移行できるそうだ
You can migrate from the SSL:Endpoint add-on to Heroku SSL with zero downtime.
残念ながら有料でHerokuを使っているユーザのみだが、月々7ドルのHobbyプランでも利用できる
既存の方法では月20ドル、年240ドル節約できるようになるのでけっこうお得
新方式のSSLのAddonを追加する
git 管理しているアプリのディレクトリへ移動する
公開鍵(example.crt)と秘密鍵(example.key)のパスを指定し、
-type sniオプションを付けて実行するのがポイント
> heroku certs:add example.crt example.key --type sni -a application_name
古いSSL:Endpointを削除する
##[重要] 独自ドメインを設定している場合はDNSの浸透待ちが必要
うっかりすぐ削除してしまうとドメイン名でアクセスしてもアクセスできなくなるので注意
Route53など別のサービスでDNS設定をしている場合はそちらの設定もする必要がある
You should note that it may take up to 24 hours before your DNS is fully propagated globally.
heroku的には24時間あれば浸透するらしい
DNSの浸透待ちの確認方法
cnameを確認して、自分のドメイン名.herokudns.comになっていればひとまず自分が利用しているDNSには浸透していることになる。
ただDNSの浸透待ちには罠(ソフトバンクのiPhoneからつなぐとつながらないとか)がいっぱいあるのでHerokuが言うように24時間は待ったほうが良い。
DNS浸透済みの例
> dig www.example.com cname +short
www.example.com.herokudns.com.
だめな例
> dig www.example.com cname +short
shimane-xxxx.herokussl.com.
古いSSL:Endpointを削除する
> heroku addons:destroy ssl -a application_name