よかろうもん!

アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログ

HerokuでカスタムドメインのSSL endpointを利用する方法

カスタムドメインは設定済みの状態でSSLアドオンを追加してSSL証明書を設定するまでの方法をメモ。

 

Herokuのアプリケーション名を sample-app とする

 

SSLアドオンの追加

$ heroku addons:add ssl:endpoint --app sample-app

 

■中間証明書の取得

SSL証明書を取得したところが配布しているものを取得する

 例えばRapidSSL社が提供するものだと以下のコマンド実行で取得できる

$ curl https://knowledge.rapidssl.com/library/VERISIGN/ALL_OTHER/RapidSSL%20Intermediate/RapidSSL_CA_bundle.pem > chain_ca.pem

※formatがdosのため必要に応じて文字コードを変換する必要がある

 

秘密鍵ファイルの作成

SSL証明書を発行する上で準備した秘密鍵ファイルを用意する。

秘密鍵ファイルは先頭が下記で始まるもので、ここでは準備したファイル名を server.key とする

-----BEGIN RSA PRIVATE KEY-----

 

■ 証明書ファイルの作成

業者から送られてきた証明書ファイルを用意する。

証明書ファイルは先頭が下記で始まるもので、ここでは準備したファイル名を server.crt とする

-----BEGIN CERTIFICATE-----

 

■ 証明書に中間証明書を追加

$ cat chain_ca.pem >> server.crt

 

■ Herokuへ証明書ファイルと秘密鍵ファイルを送信

$ heroku certs:add server.crt server.key --app sample-app  

 

Adding SSL endpoint to sample-app... done

messageleaf now served by iwate-2222.herokussl.com

Certificate details:

 ・・・(略)・・・

 

■ CNAME情報のアップデート

CNAMEの設定を、カスタムドメイン設定時に指定されたものから、レスポンスのテキスト内に表示されているところに変更する

sample-app.herokuapp.com.   =>   iwate-2222.herokussl.com.

 

■ 確認

 

$ heroku certs --app sample-app  

 

Endpoint                  Common Name(s)                      Expires                  Trusted

------------------------  ----------------------------------  -----------------------  -------

iwate-2222.herokussl.com  www.sample-app.com, sample-app.com  2014-07-26 10:00:00 JST  True

 

あとはSSL証明書が設置されるまで数分程度だけ。

 

 

 

----追記

SSL証明書の更新をする場合は以下のコマンドを実施してください。 

$ heroku certs:update  server.crt server.key --app sample-app