独自ドメインをherokuに設定しSSL化もおこなう

テックアカデミーの契約もそろそろ終盤を迎えています。

それと同時に自作アプリも完成に近づいています。今日はherokuにデプロイしたアプリを独自ドメインで運用しようと思いやってみました。またSSL化も行います。

条件ですが以下のようになっています。

・herokuにはアプリをデプロイ済
・herokuにクレジットカード登録済 (→herokuにクレカを登録するの記事)
・ドメインは購入する(自分はお名前.comで取得)
・herokuのプランはHobby(月$7の有料プラン)

herokuではドメインルートのハードルが高い

まず重要なポイントがありました。なんとherokuではドメインルートでの運用をするのに手間がかかる様子です。例えば以下のような

http://koluku.net → これは難しい
http://www.koluku.net → こっちは楽にできる

ていうか今どき何言ってるんだろう、という感じだけどむしろこっちのほうが標準なのかもしれないですね。(しかしこれを知ってればherokuで運用しないことを検討したかも?)

調べたところRFC1034 section 3.6.2というのを遵守するとDNSの設定でAレコードとCNAMEの設定を以下のようにできないそうです。

koluku.net. IN A 50.19.85.132
www.koluku.net. IN CNAME koluku.net.

これが何をやっているのか自分の言葉で恐縮ですが解釈すると、上の行はkoluku.netというドメインを50.19.85.132というIPに一意に紐付けしていて、下の行はwww.koluku.netというドメインをkoluku.netに紐付ける、という事をしています。

一方herokuでは安定した受信IPアドレスが無いため駄目なんだ、という話です。

とは言え、やる方法はあるみたいです。
https://qiita.com/serinuntius/items/f7f08b2221f5ad068f5d
https://koucs.com/articles/31
http://shindolog.hatenablog.com/entry/2015/02/01/225521

なので取り敢えずドメインはwww付きで運用して、余裕があればルートに変更するような2段階でやります。テックアカデミーの先生にもハードルが高いので大変ならwww付きで運用を、と言われました。

以下herokuで独自ドメインを当てたやり方を残しています。

・herokuのプランを有料プランに切り替える
・お名前.comでドメインを購入する
・heroku側のドメイン設定とSSL設定
・お名前.comのDNS設定

この流れです。

herokuのプランを有料プランに切り替える

1.まず料金プランの画面で確認します。
https://www.heroku.com/pricing

Hobbyプランは$7/月です。これで無料SSLも対応します。この画面で確認したら右上の「VISIT DASHBOARD」をクリックします。

2.Hobbyプランにするアプリを選択します

3.Resourcesタブをクリックします

4.Upgrade to Hobbyをクリックします

5.$7/dyno/monthをクリックして、画面右下のSaveをクリック
herokuのこのプランのことをdynoと呼ぶようですね。

6.WEBのところが$7に変わったので設定できたと思います

お名前.comでドメインを購入する

お名前.comでのドメイン購入に関しては様々なブログで紹介されてるのであえて書かなくても良いかなと思ったのですが念の為。

1.お名前.comにアクセスして自分の好きなドメインを検索

2.TLD(.comや.netなど)を選択して、「お申込みへ進む」をクリック

3.Whois情報公開代行の設定

「Whois情報公開代行」の部分ですがこれは「設定する」にするとドメイン運営者の氏名や住所等が公開されなくなります。無料ならやっておいて損はありません。逆に公開することでドメインの信頼性が上がるという見方もありますので、運営者次第で設定してください。

またお名前のアカウントがあれば、この時点でユーザ/パスワードでログインに進みます。

4.支払いクレジットカードの登録/確認
申し込むをクリックします

途中でサーバーも購入させようとしてきますが、無視してください。

5.これで完了です。
設定はまた後ほどやります。

heroku側のドメイン設定とSSL設定

1.ダッシュボードから自分のアプリを選択

2.Settingsタブをクリック

3.画面を下に下げてDomains and certificatesの項目の右側にある「Add domain」をクリック

4.Domain Nameを入力します
→ www.koluku.net のようにwww付きです。そしたら「Save changes」をクリックして保存します。

5.DNS Targetをコピーして保存しておきます。これをお名前の設定に使いますので。

6.SSLの設定はここです

画面右の「Configure SSL」のボタンを押すと、小窓が出てきますので「Automatically configure using Automated Certificate Management」を選択して「Continue」をクリック

7.よくわかんないけど画面が出てきたので「I’ve done this」と「continue」をクリックしておきました

お名前.comのDNS設定

またお名前に戻ってきました。

1.ドメインNaviにログインしたら以下の画面が出てくるので「ドメイン設定」へ進みます

お名前の画面はほんとゴチャゴチャしてて売らんかな意識がすごいので使いにくいですけど我慢して。たぶん操作ミス課金とか狙ってるから。

2.「DNS関連機能の設定」をクリック
画面下にいけばこのリンクがサイドメニューと真ん中にあるので、どっちかをクリックです

3.ドメインを選択して「次へ進む」をクリック

4.DNSレコード設定を利用するのところの「設定する」ボタンをクリック

5.以下のように設定して「追加」をクリックします
TYPE→CNAME
ホスト名→wwwを入力
VALUEには、先程herokuでコピーしたDNS Targetを貼り付け

6.追加されたら画面下部まで進み確認へ進みます
DNSレコード設定用ネームサーバー変更確認のところは、変更するのチェックを入れました

7.確認して設定するにすれば完了です

反映まで数時間~30時間ほどかかるようです。

と、思ったけど駄目でした。やっぱりね。Railsやheroku関連でマニュアルどおりやってもすんなりウマクいった事がありません(´・ω・`)何度もね(●`ε´●)

と思ったらいつのまにか時間が解決してくれた。設定から約20時間後にSSLが使えるようになりました。