LoginSignup
38
37

More than 5 years have passed since last update.

Railsアプリを作るときいつもやること 〜ドメイン・SSL編

Last updated at Posted at 2014-09-24

独自ドメインを設定する

  • ムームードメインで管理しているドメインを、
  • CloudFlareを使って、
  • herokuアプリに設定する

手順は、
1. herokuのSettingページより登録したいドメインを追加(ルート&wwwを追加)
2. CloudFlareへの独自ドメインの登録
3. CloudFlareのDNS設定画面でAレコードを削除
4. 代わりにCNAMEレコードで「Name」に独自ドメイン、「value」にherokuから提供されているドメインを追加
5. Freeプランで先へ進む
6. 「Change your name servers with your DNS provider」みたいなのが出るので、表示されている情報をムームドメインの「GMOペパボ以外のネームサーバを使用する」から登録

これで数分待つと、独自ドメインにアクセスするとherokuアプリが呼ばれるようになる。
ちなみにGoogle AppsのメールもCloudFlareにMXレコードを登録すると扱えるようになる。

変更状況が気になる場合は、

console
$ dig example.com NS

とすることで、DNSのステータスを確認できる。変更されてなかったら、TTLを確認して、のちほど再度digする。

参考:
[Heroku] CloudFlareを利用したルートドメインの設定方法
DNSに関する基本ガイド - Google Apps 管理者用 ヘルプ

SSLを設定する

  • 独自ドメインを設定したherokuアプリに対して、
  • DNSimpleで取得したSSLを設定する

手順は、
1. DNSimpleからSSL証明書を購入
2. Private Keyを作成
3. Certificate Fileを用意
4. herokuにSSLのアドオンを追加
5. herokuにkeycrtを追加
6. CNAMEレコードを変更
7. 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つのファイルにまとめる。

console
$ cat www_example_com.crt COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt AddTrustExternalCARoot.crt > server.crt

4つのファイルの順番に注意。先頭が自分のドメインのもので、最後がCARootになるように指定する。

4. herokuにSSLのアドオンを追加(有料:月$20)

console
$ heroku addons:add ssl:endpoint

5. herokuにkeycrtを追加

console
$ heroku certs:add server.crt server.key

6. CNAMEレコードを変更

まずはエンドポイントを確認

console
$ 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/environments/production.rb
config.force_ssl = true

テストもしてみる

console
$ curl -kvI https://www.example.com

これでOK!

参考:
Purchasing an SSL Certificate from DNSimple
SSL Endpoint
Certificate Installation: NGINX

38
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
37