はじめに
お名前.comで取得したドメインを使ってEC2+ACMのDNS検証でHTTPSサイトを作ろうとしたら証明書の発行に数日かかったときのことをまとめました。
この手順は、ハマった人(おそらく少ない)だけではなくて、ACMでDNS検証を使ってSSL証明書をリクエストする方にも参考になると思います。
普通にやれば数分で発行されるはずです。
AWS Certificate Manager(ACM)とは?
AWS Certificate Manager - AWS公式サイト
サマリ
- 無料でSSL証明書が使える**(ただしELB/CloudFront/API Gatewayの利用が前提)**
-
自分で更新手続き > 購入 > サーバへ反映 する手間がいらない
- 運用の手間が省けるのですごくありがたい
設定の流れ
AWS マネジメントコンソール を使った手順です。
Certificate Manager(AWS マネジメントコンソール のトップからcerと検索すると出てくる)
ドメイン名へサイトのドメイン名を記入して次へ(ワイルドカード証明書もリクエストできる)
DNS の検証を選んで次へ
なお、E メールの検証を選ぶと、取得したドメインのpostmaster@やadmin@へ承認依頼メールが飛びます。
今回このドメインのメールサーバは作っていないのでDNS検証を選びました。
確定とリクエストで終了
各ドメインをクリックするとCNAMEの情報が表示されます(一部マスクしてます)。
このCNAMEをドメイン管理側(今回はお名前.com)で登録します。
レコード設定
お名前.comへログインして該当ドメインの設定画面を表示してからの流れです。
ホスト名へACMの画面で表示された名前、TYPEをCNAME、VALUEに値を設定して追加
設定を保存します。普通は数分後に承認されるはずです。
数日かかっても承認されない
ACMのステータスは検証保留中のまま数日経過。
その後確認すると検証タイムアウトになっていた。
原因
ネームサーバーの設定が正しくなくてCNAMEレコードが解決されなかったため。
お名前.comのDNS設定画面では以下のようにNSに0[1-4].dnsv.jpが設定されているけど
実際はこうなっていた。
$ dig <mydomain>.info ns
;; ANSWER SECTION:
<mydomain>.info. 60 IN NS dns2.onamae.com.
<mydomain>.info. 60 IN NS dns1.onamae.com.
ドメイン取得するときにあやまって何かを押してしまったのかと。
調べたところ、ネームサーバーを正しく変更する必要がありました。
なお、DNS検証のリクエスト猶予は72時間らしいです。超えたら再度リクエストを出せばOKです。
ネームサーバーを変更
お名前.comのレコード設定から、以下のチェックを入れて設定を反映します。
これでネームサーバーがdns[1-2].onamae.comから0[1-4].dnsv.jpへ変更されました。
$ dig www.<mydomain>.info ns
;; ANSWER SECTION:
<mydomain>.info. 60 IN NS 04.dnsv.jp.
<mydomain>.info. 60 IN NS 01.dnsv.jp.
<mydomain>.info. 60 IN NS 02.dnsv.jp.
<mydomain>.info. 60 IN NS 03.dnsv.jp.
数分後に無事発行されました。
ELBへ設定
今回はELBを使うので、ELBの追加画面からACMで作成した証明書を指定すればOKです。
さいごに:SSL証明書の意義とか
- 通信を暗号化することだけではなく、いま自分がアクセスしているサーバは(信頼のある)認証機関によって実在証明されていることを示すことに意義がある。
- 暗号化のためだけに導入すると思っている人が案外多い。
- 暗号化しているから安全ということはない。悪意あるユーザがSSL証明書を使ってあなたと暗号化通信することだってできる。
- よって、信頼できる認証機関があれやこれやとコストをかけてドメインの審査をして、パスしたコモンネームへSSL証明書を発行する。
- 電話が来て実在確認されることだってある。EVはもっと厳しい審査があるはず。
- 使っている暗号化のアルゴリズムは大手とそれ以外で同じとして、大手のSSL証明書がお高いのは認証局の信用に対するコストだと思う。
- 安すぎると大丈夫かなと思うのが人間の心理。