独自ドメインを設定する
- ムームードメインで管理しているドメインを、
- CloudFlareを使って、
- herokuアプリに設定する
手順は、
- herokuのSettingページより登録したいドメインを追加(ルート&wwwを追加)
- CloudFlareへの独自ドメインの登録
- CloudFlareのDNS設定画面でAレコードを削除
- 代わりにCNAMEレコードで「Name」に独自ドメイン、「value」にherokuから提供されているドメインを追加
- Freeプランで先へ進む
- 「Change your name servers with your DNS provider」みたいなのが出るので、表示されている情報をムームドメインの「GMOペパボ以外のネームサーバを使用する」から登録
これで数分待つと、独自ドメインにアクセスするとherokuアプリが呼ばれるようになる。
ちなみにGoogle AppsのメールもCloudFlareにMXレコードを登録すると扱えるようになる。
変更状況が気になる場合は、
$ dig example.com NS
とすることで、DNSのステータスを確認できる。変更されてなかったら、TTLを確認して、のちほど再度digする。
参考:
・ [Heroku] CloudFlareを利用したルートドメインの設定方法
・ DNSに関する基本ガイド - Google Apps 管理者用 ヘルプ
SSLを設定する
- 独自ドメインを設定したherokuアプリに対して、
- DNSimpleで取得したSSLを設定する
手順は、
- DNSimpleからSSL証明書を購入
- Private Keyを作成
- Certificate Fileを用意
- herokuにSSLのアドオンを追加
- herokuに
key
とcrt
を追加 - CNAMEレコードを変更
- Railsの設定を更新
1. DNSimpleからSSL証明書を購入(有料:年$20〜)
基本的には画面に沿って情報を入力すれば問題ないはず。購入すると、「Send Email to Approve SSL Certificate」という画面に遷移するので、表示されている中から一つメールアドレスを選択して、確認メールを受信する。到着まで数分待つ。
確認メールの中にリンクと確認コードがあるので、リンク先のフォームにコードを入力すれば承認完了。
2. Private Keyを作成
確認コードを入力すると、Private Keyが表示した画面に移る。そこでの表示内容をコピーして、server.key
というファイル名でローカルに保存する。
3. Certificate Fileを用意####
DNSimpleから「Your EssentialSSL Certificate for ...」というタイトルでもう一つメールが送られてくる。このメールに添付されている4つのファイルをローカルに保存して、1つのファイルにまとめる。
$ cat www_example_com.crt COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt AddTrustExternalCARoot.crt > server.crt
4つのファイルの順番に注意。先頭が自分のドメインのもので、最後がCARootになるように指定する。
4. herokuにSSLのアドオンを追加(有料:月$20)
$ heroku addons:add ssl:endpoint
5. herokuにkey
とcrt
を追加
$ heroku certs:add server.crt server.key
6. CNAMEレコードを変更
まずはエンドポイントを確認
$ heroku certs:info
Fetching SSL Endpoint example-2121.herokussl.com info for example... done
Certificate details:
Expires At: 2012-10-31 21:53:18 GMT
Issuer: C=US; ST=CA; L=SF; O=Heroku; CN=www.example.com
Starts At: 2011-11-01 21:53:18 GMT
Subject: C=US; ST=CA; L=SF; O=Heroku; CN=www.example.com
...
このexample-2121.herokussl.com
を使ってCloudFlareのDNSを更新。
7. Railsの設定を更新
config.force_ssl = true
テストもしてみる
$ curl -kvI https://www.example.com
これでOK!
参考:
・ Purchasing an SSL Certificate from DNSimple
・ SSL Endpoint
・ Certificate Installation: NGINX