[heroku]herokuでのSSL設定とカスタムサブドメインの適用方法
herokuでのSSL設定とカスタムサブドメインの設定をさっくりと調べてみた。
SSL
手順
- プライベートキーを作成
- CSRを作成
- CSRを契約の際に業者に提出
- 証明書が発行される
- 証明書 + 中間証明書 + プライベートキーを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、から設定したいドメインを指定する。
契約しているドメイン業者の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
で確認できる。