ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

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

というエラーが飛んできます。