batchiです。
前回はhm君がACMに関する記事を書いてくれたのですが、
見ている内になかなか面白そうだということになりまして、
自分でも調べてみることにしました。
AWS Certificate ManagerでSSL証明書を取得した話
基本的にはhm君が書いてくれたことに乗っかりつつ、
2016年12月現在日本語に対応していないドキュメントと、
http://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html
じゃあもうざっくりしたことはこちらで見ます!でおなじみのBlack Beltの資料をお供に、進めていきます。
ACMのさっくりとした特徴
■証明書取得は無料
うれしいですね。証明書だけでなくACMというサービス自体が無料です。
■証明書の種類は「ドメイン検証済み証明書」
ACMの「よくある質問」ではそういう言い回しになっていますが、
一般的には「ドメイン認証証明書」ですね。
https://aws.amazon.com/jp/certificate-manager/faqs/
Black Beltのスライドの16ページに、証明書の種類が載っています。
■証明書の更新を自動で行ってくれる
証明書の有効期間は13ヶ月で、
早い場合期限切れの60日前から更新プロセスを実施してくれます。
■証明書のデプロイは、ELBかCloudFrontにのみ対応
EC2やらオンプレで建てたWeb/APサーバに入れましょう、
というのは(現在のところ)できませんということですね。
デュアルアクセスはできないが
証明書ベンダーによっては、
コモンネーム「www.hoge.co.jp」で証明書を取得すれば、
zoneapexである「hoge.co.jp」にも証明書が有効となったりします。
それをデュアルアクセスと呼ぶのだそうです。
ACMに置き換える前はデュアルアクセス対応の証明書だったので、
「じゃあACMではワイルドカードかなんかでまるっと有効にすればよろしんじゃないー」
なんて無責任に言っていたのですが、
ワイルドカード指定でプロテクトできるのは、
飽くまで「apexドメインのサブドメイン」までということでした。
つまり、「*.hoge.co.jp」と指定すれば、
www.hoge.co.jpもbatchi.hoge.co.jpも対象となりますが、
www.fuga.hoge.co.jpや、hoge.co.jpはプロテクトしてくれないのでした。
ただし
ACMでは1枚の証明書に複数ドメインを設定できるので、
今回はドメイン名「*.hoge.co.jp」で証明書を取得し、
そこに[追加の名前]として「hoge.co.jp」を指定することで、
やりたいことがひとまず実現されました。
(ワイルドカードでなくてwwwで良かったかもしれない)
↓そこらへんの仕様がつらつらと書いてあります。
http://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html
[Wildcard Names]
When you request a wildcard certificate, the asterisk (*) must be in the leftmost position of the domain name and can protect only one subdomain level. For example, *.example.com can protect login.example.com and test.example.com, but it cannot protect test.login.example.com. Also note that *.example.com protects only the subdomains of example.com, it does not protect the bare or apex domain (example.com). However, you can request a certificate that protects a bare or apex domain and its subdomains by specifying multiple domain names in your request. For example, you can request a certificate that protects example.com and *.example.com.
証明書にタグがつけられるが
ELBのリスナーにデプロイする選択画面では、
<ドメイン名>+<長ったらしい識別子>で表示されていました。残念。
証明書取得の事前準備
ドメイン認証証明書、というからには、
当然ドメインの管理者である必要があるわけで、
管理者あてに送られてくるメールを受け取れなければいけないわけです。
ではどこ宛にメールが送られてくるか、
というと、「whois情報に紐づく担当者」です。
正確に言うと、証明書リクエストに記載された各ドメイン名に対して WHOIS ルックアップが実行され、
そのドメインの連絡先情報に登録されている、
ドメインの登録者、管理者、および技術担当者の連絡先に送信されます、とのこと。
加えて、下記5つのアドレス。
administrator@your_domain
hostmaster@your_domain
postmaster@your_domain
webmaster@your_domain
admin@your_domain
whois情報とは何ぞや
このドメインはどこそこの誰が管理しているか、
というのは一般に公開されているものです。
「whois情報検索」なんかで検索すれば、
そういったサイトがいくつも出てきます。
試しに弊社のドメインのwhois情報を確認してみると…
あぁ。なるほど。
お名前.comなどでドメイン取得するケースが多いかと思いますが、
その際に登録する情報ですね。
whois代行みたいなオプションを有効にすれば、
この検索結果をお名前.comのものにしてくれると。
Validation Not Complete
上述のように、(可能性としては)たくさんの宛先に確認メールが送られるわけですが、
それを全部承認しなければ有効にならない、ということはありません。
(スライドの30Pの記述からそう判断した)
[ドメイン名]と[追加の名前]で証明書を取得したなら、
それぞれに(可能性としては複数の宛先に対して)承認メールが送られるので、
その両方で(1通以上のメールにおいて)承認を行えば、晴れてValidationがCompleteになります。
なるはずです。
http://docs.aws.amazon.com/acm/latest/userguide/troubleshooting.html#troubleshooting-incomplete
If your request includes more than one domain name in the certificate, then you must approve every domain name that you included.
2分くらい時間かかるそうです。
以上です。