HerokuでSSLを使うのはすごく簡単だった
Herokuにアプリをデプロイするとhttp://yourapp.herokuapp.com/というようなURLが作られますが、このURLのhttpをhttpsに書き換えるとHTTPSによるアクセスになります。以上。
SSL Endpoint is only useful for custom domains. All default appname.herokuapp.com domains are SSL-enabled already and can be accessed simply by using https, e.g., https://appname.herokuapp.com.
SSL Endpoint | Heroku Dev Center
ちなみに、独自ドメインでSSLを使う場合はその名もずばりなSSLというアドオンが必要になります。昔は無料のものがあったようですが、今は月20ドルの課金アイテムオンリーとなっています。KICHIKUですね。
Railsを使うときは設定をお忘れなく
強制HTTPSアクセスの設定は、環境設定のファイルに
config.force_ssl = true
と書くだけです。もっといえばコメントアウトされている上の1行をアンコメントするだけの簡単なお仕事です。コントローラーごとに強制する場合は、対象のコントローラークラスごとに「force_ssl」と書きます。
おまけ
プロダクションでうごかしたとき、メールなんかでよく使うであろうhoge_urlという絶対URLを書き出すメソッドがエラーを吐きました。理由はホスト名を指定していなかったからで、どうするのがベストなんだろうと小一時間考えていました。
結局、Herokuに限って言えば、環境変数に設定してしまうのがよさそうでした。
heroku config:set HOST_NAME=http://hoge.herokuapp.com
みたいな感じで環境変数を設定し、
config.action_mailer.default_url_options = { host: ENV[:HOST_NAME] }
としておけばOKです。念のため再起動しておきましょう。ちなみにこの設定を忘れると
Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
というエラーが飛んできます。