Top header xs

無料でドメイン割り当て、HTTPSを実現。Heroku + Cloudflare

前回 Railsでブログ作ってみたに続きこのブログをデプロイする上で必要だったことをシェア。

このブログはお名前.comで初年度1円の.spaceを取得しただけで他には一切費用がかかっていません。(画像アップロード先にS3を使っているが初年度は無料。)
herokuで無料でドメイン取得+HTTPS対応できたので今回はこの手順を紹介。
Herokuの他にCloudflareというサービスを使います。

Herokuへのデプロイ、お名前.comでドメインを取得する。

サービスが完成したらherokuへデプロイ。そして希望のドメインを取得。ここまでが必要条件。

railsアプリの production.rbにて以下の設定にしてデプロイする。

  config.force_ssl = true


Cloudflareにてアカウント登録

https://www.cloudflare.com/ こちらへアクセスし、アカウント作成。

ドメインを入力

ここで取得したドメインを入力。ここではhirozak.spaceとする。

DNSの設定

デフォルトで値が入っていると思うのでそれらを全て削除し、TypeをCNAME、Nameに取得したドメイン名、Valueにherokuのドメイン名を入力。


プランを選択

無料のFreeを選択しました。


お名前.comのNameserverを変更

DNSの設定からスクロールすると上の画像のようにNameserverの値が表示されているのでこちらを参照。

お名前.com https://navi.onamae.com/top へアクセスし、ログイン。
上部メニューのドメインから、対象のドメインをクリックし、そのページ内からネームサーバーの設定へ。

するとこの画面にいくのでこちらでその他のタブを選択、先ほど参照したNameserverをコピぺ。


Herokuにてドメイン名を追加

Herokuのダッシュボードからアプリを選択、Settingsへ、Add domainをクリック。
するとこのウィンドウがでるのでここにドメイン名を入力。


CloudflareのSSL設定

Cloudflareに戻り、CryptタブにてSSLの設定。ここでFullを選択。

これで設定はおわり。

あとは数時間〜1日程度待ちましょう。自分は3時間ほどで反映されました。
以上でドメイン割り当て、HTTPS対応が完成。


まとめ

意外と簡単でした...よね?こんな感じであっさり終わります。サービス作ってドメイン取得していち早く公開したい時は使いたいです。

ただ、この設定には一つ弱点があり、heroku非課金なのでDynoはもちろんFree、ということは30分リクエストがないとアプリはスリープ状態に。
接続に20秒ほど時間がかかってしまうので近々Hobby Dynoに変更したいところ($7/month)
→ Heroku Schedulerを導入することで解決しました。

About Me

Profile image

hirozak

エンジニア

音楽, 映画, 海外ドラマ, ガジェット, インテリア, お酒が好きです。

詳しく見る

This Blog

このブログはhirozakがRuby on Railsで開発しました。

GitHubにて、ソースコードを公開しています。