HerokuをSSL化してルートドメインを設定する簡単な方法

プログラミング

WordPressを現在Herokuで運営しているのですが、その中で特にハマったのがルートドメインの設定とSSL化。

ルートドメイン(Root Domain)とは、例えば www.example.com ではなく example.com のように頭に www などがついていないドメインのことで、前者をサブドメインと呼ぶ。
Herokuは基本的に www のついたサブドメインでの運用を想定しているためサブドメインでのSSL化などは非常に簡単にできるのだが、ルートドメインのSSL化がなかなか面倒だったため備忘録の意味も込めて共有して行こうかと思います。

Herokuとは?

開発をする上で設定や構築することが面倒な環境を提供してくれるPaaSと呼ばれる超便利なサービスです。
Herokuに面倒ごとを任せることで、開発だけに集中することができる利点があります。

Herokuでルートドメインを使用する

Herokuでルートドメインを使用する場合、heroku add-onであるPointDNSを使う方法が個人的には簡単だと思います。

以下のコマンドで取得した独自ドメインをherokuに登録します。

$heroku domains:add www.example.com

ついでにルートドメインも

$heroku domains:add example.com

DNS Targetを確認

$heroku domains
=== your-app-name Heroku Domain
your-app-name.herokuapp.com

=== your-app-name Custom Domains
Domain Name          DNS Record Type  DNS Target
───────────────────  ───────────────  ─────────────────────────────────────────────────────
www.example.com      CNAME            hugahuga.herokudns.com
example.com          ALIAS or ANAME   hogehoge.herokudns.com

お名前.comやムームードメインなど独自ドメインを取得したサービスにログインし、DNSレコード設定をサブドメインで行う。
VALUEには上記だとhugahuga.herokudns.comを入力します。

DNSレコードの設定が終わったらPointDNSを開く。CLIの場合は以下のコマンドで。

$heroku addons:open pointdns

この画面のCNAMEALIASのDATAを変更していく

右にあるペンのマークを選択すると、編集可能になるので、先に進みTargetに先程確認したDNS Targetをルートドメイン、サブドメインとも入力していく。
続いてページの上部にあるタブからNameserversを選択するとdns1.pointhq.comというNameがズラッと出てくるので、dns15.pointhq.comまでの全てをお名前.comやムームードメインのネームサーバーに入力していく。

以上でルートドメインをHerokuで使用することができるようになります。

[adsense]

HerokuでSSL化する簡単な方法

Herokuには「Automated Certificate Management(ACM)」という自動的にアプリケーションに対してTLS証明書を設定してくれるサービスが存在している。
「ACM」を使えば一瞬で設定が完了します。本当に爆速。使わない手はない。

ただこの「ACM」はHerokuではHobby以上のプランでしか使用することができない。
料金は月額7ドル〜なので、Herokuで小規模な個人的プロジェクトや趣味のアプリケーションを運営するなら「ACM」のことを考えても最初からHobby以上のプランを選んだ方がいいだろう。

もしまだFreeプランの場合は、まず最初にプランをHobbyかProfessionalに変更する必要があります。

$heroku ps:resize web=hobby

続いて以下のコマンドで「ACM」を有効化していく。

$heroku certs:auto:enable

SSL認証を確認するためには以下のコマンドを打ちます。

$heroku certs:auto
=== Automatic Certificate Management is enabled on YOUR APP NAME

Certificate details:
Common Name(s): example.com
                www.example.com
Expires At:     
Issuer:         
Starts At:      
Subject:        /CN=example.com
SSL certificate is verified by a root authority.

Domain               Status       Last Updated
───────────────────  ───────────  ──────────────
www.example.com      Cert issued  
example.com          Cert issued 

ステータスがCert IssuedになっていればSSL化は完了。

タイトルとURLをコピーしました