AWS 基礎コース / Chapter 14

ACM証明書をDNS検証し、HTTPSの身元を証明する

証明書をリクエストしただけではHTTPSに使えない。ドメインを管理している証拠をDNSで示し、発行済みになった証明書を正しいリージョンのサービスへ渡す。

TL;DR

  1. ACMはドメイン名に対するTLS証明書を発行し、ALBなどのHTTPSリスナーで利用する。
  2. DNS検証のCNAMEは、申請者がそのドメインのDNSを制御できることを確認する。
  3. ALB用証明書はALBと同じリージョン、CloudFront用証明書はus-east-1で用意する。

01証明書とDNS検証の役割を分ける

HTTPSの暗号化と、ドメイン所有の確認は連続した別工程

ACM証明書をRoute 53のCNAMEでDNS検証する図
ACMのCNAMEをDNSへ置くことで、申請者がドメインを管理していると確認する。

ACMでドメイン名を指定して証明書をリクエストすると、DNS検証用のCNAMEが提示される。権威DNSのHosted Zoneに追加され、ACMが観測できるとステータスは発行済みになる。

検証が進まないときは、CNAMEの名前・値・置いたHosted Zoneが、対象ドメインの権威DNSと一致しているかを確認する。

02証明書の対象名と更新を設計する

ワイルドカードの範囲と検証レコードの維持を理解する

ワイルドカード証明書の対象とDNS検証レコードを残す理由
対象名の範囲を確認し、検証用CNAMEは更新のため保持する。

ワイルドカード証明書は一階層下のサブドメインをまとめて扱えるが、階層の深い名前や親ドメイン自身は別扱いになる。DNS検証のCNAMEは一度の発行後も自動更新で必要になるため残しておく。

証明書の対象名を「必要なホスト名の一覧」から決める。万能なワイルドカードとして過信しない。

03使うサービスのリージョンで証明書を発行する

ACMは同じドメインでも利用先ごとにリージョン要件がある

ALBとCloudFrontで必要なACM証明書のリージョンを示す図
利用先がリージョナルかグローバルかで、証明書を置くリージョンが変わる。

東京リージョンのALBに設定する証明書は東京リージョンのACMで発行する。一方CloudFrontで使う証明書はus-east-1に置く必要があるため、同じドメインでも利用先の制約を確認する。

証明書がリストに見えないとき、まず証明書の対象名よりリージョンの選択を疑う。

結論

  1. ACMの証明書はDNS検証を通って発行済みになる。
  2. CNAMEは自動更新のためにも残す。
  3. 証明書のリージョンは利用するサービスに合わせて選ぶ。