AWS Certificate ManagerでSSLを作成する際に送る承認リクエストの送信先をスーパードメインに変更する。

AWSCertificateManageraws-cli

Written by Kohei Yamada Posted on 2016/11/21



はじめに

AWS Certificate ManagerでSSLを作成する際、メールで送られてくる承認リクエストを認証が必要となります。
基本的に承認リクエストの送信先となるのは、

となります。

例えばstg.proudit.jpを取得する場合は、

この5つに対して送られます。

ですがもし、Whois情報公開代行を行なっている場合@stg.proudit.jpのアドレスにしか承認リクエストが送られません。
そんな時、aws-cliを利用すると@stg.proudit.jp@proudit.jp変更して承認リクエストを送ることができます。


SSLについて

ちょっとその前に、軽くドメインについて説明しておこうと思います。

SSL証明書申請者が申請したドメイン使用権を有しているかを認証します。
認証確認はメールで行われるため、組織情報の確認や認証局の電話確認はありません。
そのため証明書の発行は早く、価格も安く発行できるため手頃ですが信頼性は3つの中で一番低くなります。
また、この認証はクイック認証型とも呼ばれます。

dv.png

証明書に記載されている組織が法的に実在するかを確認し、さらにその組織が証明書に記載されているドメインの所有者であるかを確認します。
確認方法としては、ドメインの所有者をWHOIS情報で確認したあと、組織が法的に実在することを第三者データベースに照会して確認します。
さらに第三者データベースに登録されている代表電話番号に電話して本人確認を行います。
ドメイン認証と比べ、信頼性は高くなりますが価格も高くなります。

ov.png

証明書に記載されている組織が法的に実在するかを確認し、さらにその組織が証明書に記載されているドメインの所有者であることを確認します。
確認方法としては、実在認証型の確認に加えて公的書類(登記事項証明書)での確認も行います。
審査が厳しいため発行に1〜2週間ほどかかり価格も高くなりますが、その代わり信頼性は一番高くなります。

ev.png

とりあえず、ポイントとなりそうなのを表にしてみました。

ドメイン認証型 企業実在認証型 EV認証型
価格 安め 高め もっと高め
発行スピード 即日 だいたい2〜3日 だいたい1〜2週間
信頼性
審査内容 メール whois, 第三者データベース, 電話 登記事項証明書, whois, 第三者データベース, 電話

ということで、今回のCertificate Managerで作成できるのはドメイン認証型になります。


SSL作成

ということでやっとSSLの作成を行いたいと思います。
まず初めに、ベースドメイン名を指定せずに単純にSSLを作成する場合に行うcliコマンドが以下です。

$ aws acm request-certificate --domain-name stg.proudit.jp

--domain-nameにドメイン名を指定してあげることで承認リクエストを送ることができます。
ただ、この場合の承認リクエストは@stg.proudit.jpへ送られてしまいます。
これを@proudit.jpへ変更するには--domain-validation-optionsオプションを利用します。

$ aws acm request-certificate \
    --domain-name stg.proudit.jp \
    --domain-validation-options DomainName=stg.hengjiu.jp,ValidationDomain=hengjiu.jp \
    --region us-east-1

DomainName=には今回作成するドメイン(--domain-nameオプションで指定したドメイン)を、ValidationDomain=にそのスーパードメイン(そのドメインの上位階層に位置しているドメイン)を与えます。
ここで--region us-east-1とオプションでリージョン指定していますが、CloudFrontに導入したい場合はバージニアでないと利用できないためです。だって、Certificate Managerが活躍できる一番の場面ってそこですよね?

ということで認証メールが届いていると思うので確認してみてください。


おわりに

スーパードメインでしかダメなの?ValidationDomain全く違うドメイン(hogehoge.jpとか)にすればそっちのadmin@とかにメール送られたりするんじゃないの?
と思うかもしれませんが、それはありません。

Q: 証明書の承認リクエストの送信先となる E メールアドレスを設定できますか?
いいえ。ただし、検証メールの送信先とするベースドメイン名を設定することはできます。ベースドメイン名は、証明書リクエストに記載されたドメイン名のスーパードメインである必要があります。例えば、server.domain.example.com の証明書をリクエストする場合、AWS CLI や AWS API を使用して、承認メールを admin@ domain.example.com に転送するよう設定できます。詳細については、ACM CLI リファレンスおよび ACM API リファレンスをご覧ください。
ー出典:AWS Certificate Manager よくある質問

ちゃんとAWSのFAQにも載っています。そりゃそうですよね。認証の意味がなくなってしまいますよねw

ですが、これができるだけで、いちいちサブドメ単位でメールアドレスを設定しないで済むので知っておくとちょっぴり便利になると思います。