[heroku]herokuでのSSL設定とカスタムサブドメインの適用方法

herokuでのSSL設定とカスタムサブドメインの設定をさっくりと調べてみた。

SSL

手順

  1. プライベートキーを作成
  2. CSRを作成
  3. CSRを契約の際に業者に提出
  4. 証明書が発行される
  5. 証明書 + 中間証明書 + プライベートキーをherokuに設定

1はローカルPC上にて作成
2の作成方法は以下、など。 https://jp.globalsign.com/support/ssl/list.php?cat=csr
5のみ、heroku上。

ファイルの準備

サーバー会社等から取得したデータを保存する。
テキストに文字列を貼り付けて保存すればよい。
※ファイル名の指定は特になし。拡張子もなんでもいい。

項目 ファイル名
秘密鍵 server.key
証明書 server.crt
中間CA証明書 chain_ca.pem

http://q.hatena.ne.jp/1188202204

herokuでの操作

SSLのアドオン($20/mo)
https://addons.heroku.com/ssl

アドオンの追加

$ heroku addons:add ssl:endpoint

サーバー証明書と中間証明書を合体させる

$ cat chain_ca.pem >> server.crt

プライベートキーのパスフレーズが解除されていない場合は解除する。

$ openssl rsa -in site.key -out server.key
Enter pass phrase for site.key:
writing RSA key

で、合体させた証明書とキーをアップする。

$ heroku certs:add server.crt server.key

アップロード結果で返ってくるURLが証明書が適応されたURLとなる。
hokkaido-1212.herokussl.com
この状態でアクセスすると、No such appと出るがこれで正しい。

参考

herokuのssl証明書を更新する
HerokuでカスタムドメインのSSL endpointを利用する方法
SSL証明書のKEYファイル・CSRファイル・CRTファイルのチェック方法

サブドメイン

herokuでの操作

herokuのアプリのSettings内にある、
Domains、から設定したいドメインを指定する。

Settings___Heroku

契約しているドメイン業者のCNAMEに、適用したいアプリのURLを指定する。
例:hoge.herokuapp.com

SSLの場合

SSLをカスタムドメインで使用したい場合は、上記SSLの項で設定した、
hokkaido-1212.herokussl.comのドメインをCNAMEに指定する。

反映後、設定の確認は以下で出来る。

$ heroku certs
Endpoint                     Common Name(s)            Expires               Trusted
---------------------------  ------------------------  --------------------  -------
hokkaido-1212.herokussl.com  secure.example.co.jp  2015-06-24 23:59 UTC  True

詳細は、heroku certs:infoで確認できる。

   このエントリーをはてなブックマークに追加