👏

ドメインの未来を変えろ!ACMでのEmailからDNSへの転換

に公開

はじめに

AWS Certificate Manager (ACM) の証明書を、従来の Email 検証から推奨されている DNS 検証へ切り替える手順を解説します。

AWS 完結の解説は多く見かけますが、今回は外部の DNS サービス(お名前.com)で管理しているドメインを利用する、より実務に近いシナリオを想定しました。実際に手を動かして検証したことで得られた知見を共有します。

今回のゴール

外部 DNS で管理されているドメインを利用し、ACM 証明書の認証方式を Email 検証から DNS 検証へ変更する。

検証環境

  • ドメイン管理: お名前.com
  • メール受信: お名前メール (Email 検証用。ローカルパートは administrator を使用)
  • AWS: ACM, ALB

今回の構成

これから実施する手順の全体像は以下の通りです。

ACM の認証方式について

ACM の認証方式には、次の2種類があります。

  • DNS 検証:
    ドメインの DNS 設定に CNAME レコードを追加して検証する方法です。レコードが存在する限り、証明書が自動で更新されるため、現在はこちらが推奨されています。
  • Email 検証:
    ドメイン所有者に送信されるメール内のリンクをクリックし、承認することで検証する方法です。証明書の有効期限が近づくたびに、手動での承認作業が必要になります。

準備編:Email 検証での証明書発行

まずは、切り替え元となる Email 検証の証明書を準備します。

1. お名前.com でのドメイン・メール設定

今回の検証のために、お名前.com で新規ドメインを取得し、Email 検証に必要なメール環境を構築しました。

  • ドメイン取得: 新規発行ドメインは非常に安価に取得できます。
  • メール環境構築: Email 検証のために「お名前メール」の安価なプラン(月額242円・税込)を契約しました。

メール受信環境の構築には、以下の3つのステップが必要です。

  1. プランに合わせたネームサーバー(NS)レコードの設定
  2. メールアドレスの発行
  3. メールクライアントの設定

お名前.com のマニュアルが非常に充実しているため、ここでは参考になったリンクを紹介します。

2. ACM で証明書をリクエスト (Email 検証)

次に、AWS マネジメントコンソールで Email 検証用の証明書をリクエストします。

  1. AWS Certificate Manager (ACM) のコンソールに移動し、「証明書をリクエスト」をクリックします。

    証明書のリクエスト

  2. 証明書タイプで「パブリック証明書をリクエスト」を選択し、「次へ」をクリックします。

    証明書のタイプ選択

  3. 以下の通り設定し、「リクエスト」をクリックします。

設定項目 設定値
完全修飾ドメイン名 *.testawsdomain.xyz
検証方法 Eメール検証


パブリック証明書をリクエスト (Eメール検証)

💡 ドメイン名の指定に関する注意点
ワイルドカード証明書 (*.example.com) をリクエストした場合、承認メールは administrator@example.com のようにベースドメインの特定のメールアドレスに送信されます。testawsdomain.xyz のようにベースドメインを指定してリクエストした場合も同様です。サブドメイン部分を含めたメールアドレスでは受信できないため注意が必要です。

  1. 設定したメールアドレスで、件名「Certificate request for testawsdomain.xyz」のメールを受信します。本文内の「Amazon Certificate Approvals」のリンクをクリックします。
    (AWS アカウント ID はマスクしています)

    受信したメールの承認

  2. ブラウザで承認画面が開くので、「I Approve」をクリックします。

    承諾画面

  3. ACM コンソールに戻り、証明書のステータスが「発行済み」になったことを確認します。これで証明書が利用可能な状態になりました。

    パブリック証明書の利用可能状態


実践編:DNS 検証への切り替え

ここからが本題です。Email 検証で発行した証明書を、DNS 検証で発行した新しい証明書に切り替えます。
(VPC、ALB、ターゲットグループの作成手順は割愛します)

1. ACM で証明書をリクエスト (DNS 検証)

  1. 再度 ACM コンソールで「証明書をリクエスト」をクリックし、「パブリック証明書をリクエスト」を選択します。

  2. 今度は DNS 検証 を選択してリクエストします。

設定項目 設定値
完全修飾ドメイン名 testawsdomain.xyz
検証方法 DNS 検証


パブリック証明書をリクエスト (DNS 検証)

  1. リクエスト後、証明書の詳細画面を開き、DNS 検証に必要な「CNAME 名」と「CNAME 値」をコピーします。
    他の担当者に作業を依頼する場合は、「CSV にエクスポート」機能が便利です。今回は自分で作業するため、値をコピー&ペーストします。

2. お名前.com で CNAME レコードを追加

  1. お名前.com にログインし、「ネームサーバーの設定」>「ドメインの DNS 設定」の順に進みます。

    お名前.com での DNS 設定画面への遷移

  2. 設定を変更するドメインを選択し、「次へ」をクリックします。

    対象ドメインの選択

  3. 「DNS レコード設定を利用する」の「設定する」ボタンをクリックします。

    DNSレコード設定の選択

  4. 先ほど ACM でコピーした値を入力し、「追加」をクリックします。

項目 設定値 備考
ホスト名 ACM でコピーした CNAME 名 ドメイン名は自動補完されるため、サブドメイン部分のみ入力
TYPE CNAME
TTL 3600 デフォルト値(任意で変更可)
VALUE ACM でコピーした CNAME 値 末尾の . (ピリオド) は除外して入力


追加するDNSレコード

  1. 画面下部へスクロールし、「確認画面へ進む」をクリックします。

    画面下部へスクロールした状態

  2. 内容を確認し、「設定する」をクリックして DNS レコードの追加を完了します。

    設定の確認画面

3. ACM での検証ステータス確認

ACM コンソールに戻り、DNS 検証でリクエストした証明書のステータスが「発行済み」になるのを待ちます。DNS レコードがインターネット全体に反映されるまでには時間がかかることがあります。(今回は30分ほど待ちました)

ACM で利用できる証明書の状態

4. ALB の証明書を差し替え

最後に、ALB に設定されている証明書を、新しく発行したものに差し替えます。

  1. EC2 コンソールの「ロードバランサー」から対象の ALB を選択し、「リスナー」タブを開きます。HTTPS: 443 のリスナーを選択し、「編集」をクリックします。

  2. 「デフォルトの SSL/TLS 証明書」の項目で、ドロップダウンリストから先ほど DNS 検証で発行した新しい証明書 を選択します。

  3. 画面右上の「変更の保存」をクリックします。

  4. リスナーの設定画面に戻り、証明書が DNS 検証用のものに変更されていることを確認します。

この後、実際にドメインにアクセスし、意図した通りに通信ができるか疎通確認を行って完了です。🎉


あとがき

DNS 検証のみ、あるいは Email 検証のみを解説する記事は多いものの、両方を跨いだ一連の流れを解説する記事が少ないと感じ、今回の執筆に至りました。実際に手を動かしてみることでしか得られない知見もあり、改めて実践の大切さを実感しました。

ちなみに、今回の検証でかかった費用は以下の通りです。書籍を1冊購入するよりも安価で、非常に価値のある経験ができたと感じています。

✅ 検証費用の内訳

項目 費用
ドメイン関連(お名前メール) 242円
AWS 関連費用 約20円 ($0.13)
合計 262円

この記事が、同じような作業を行う方の助けになれば幸いです。

参考記事

Discussion