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
この画面のCNAME
とALIAS
の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化は完了。