2024.10.04|eyeon

【手順】DNS検証の証明書を作成してALBに反映する

こんにちは。eyeon運用チームです。
2024年10月以降にEメール検証で作成された証明書のWHOIS検索が廃止されることが発表されてからしばらく経ちました。
現在(2024年10月)、新規でEメール検証で証明書を作成してもWHOISに登録されている連絡先アドレスには、ドメイン検証メールは送信されず、リクエストされたドメインのシステムアドレス(「admin@”ドメイン名”」や「webmaster@”ドメイン名”」など)に送信され続けてしまいます…。

ということで、今更ですが、AWS Certificate Manager(ACM)にてDNS検証の証明書を作成してALBに反映する手順をご案内します。

1. 構成図

今回の環境で使用しているサービスは、Route53 、ACM、ロードバランサー(ALB)、EC2(WEBサーバ)です。
Route53はDNSサーバとして、ACMは証明書の作成・管理として、それぞれ利用しています。

WEBアクセスまでの流れは以下です。

① ユーザのブラウザは、URLの名前解決のため、Route53に問い合わせする(DNSクエリ)
② ユーザのブラウザは、Route53から回答されたIPアドレス(ALB)に、HTTPSリクエストを送信する
③ ALBは、HTTPSのリクエストをオフロードする(SSL/TLS暗号化を復号する)
④ ALBは、EC2にHTTPリクエストを送信する
⑤ ALBは、ユーザにHTTPレスポンスを送信する
<<図 diagram>>

こちらにRoute53の名前解決からALBの流れを説明しているので、ぜひご参照ください!

2. フロー図

今回の設定の流れです。

①ACMでDNS検証の証明書を作成します
②自動でRoute53にCNAMEレコードが追加されます
③ALBに作成した証明書を反映します

無事に反映できたら、隣の人とハイタッチ🙌しましょう。
隣に誰もいなければ、そのまま静かに作業完了しましょう。

<<図 diagram>>

3.(手順):ACMでDNS検証の証明書を作成

正確な手順、最新の情報は、AWSさんのドキュメント「パブリック証明書をリクエストする」をご参照くださいませ。

(1)ACMコンソールを開くため、以下のURLをクリックします

https://ap-northeast-1.console.aws.amazon.com/acm/home?region=ap-northeast-1#/welcome

(2)ACMコンソールから「証明書をリクエスト」をクリックします

<<図 ACM Console>>

(3)「証明書をリクエスト」画面の証明書タイプにて、「パブリック証明書をリクエスト」にチェックします
チェック後、「次へ」をクリックします

<<図 request a public certificate>>

(4)[ドメイン名] セクションで、完全修飾ドメイン名のテキストボックスにFQDNを入力します
(今回はFQDNとして「www.k-friendly.com」と「k-friendly.com」を入力します)

(5)[検証方法] セクションでは「DNS検証」をチェックします

<<図 request a public certificate>>

(6)[キーアルゴリズム] セクションではACM証明書のデフォルトのキーアルゴリズムである「RSA 2048」をチェックします
(要件に従い、暗号化アルゴリズムを選択ください。通常は「RSA 2048」で問題ないと思います)

(7)証明書にタグを付けることができますが、今回はタグ付けせずスキップします

(8)[リクエスト] をクリックします

<<図 request a public certificate>>

(9)作成した証明書の情報が[証明書一覧]に追加されていることを確認できたらACM証明書の作成は完了です

<<図 List certificates managed>>

4. (手順):証明書をDNSレコードに反映

次に、作成した証明書をDNSレコードに反映させます。
正確な手順、最新の情報は、AWSさんのドキュメント「DNS検証のセットアップ」をご参照くださいませ。

(1)ACMコンソールの[証明書一覧]から、作成した証明書をクリックします

<<図 List certificates managed>>

(2)[ドメイン]で次の2つの手順のうち、a か b のいずれかの手順を実施してください

  a.DNSプロバイダーとしてRoute53を使用している場合
   a-1.[Route 53でレコードを作成] をクリックします

<<図 List Domain>>

   

   a-2.ドメインが検証されていない場合、以下を選択後に「レコードを作成] をクリックします
    └ [Amazon Route53でDNS レコードを作成]セクションで追加するドメインをチェックします
     今回は自動で追加されました

<<図 Route53>>
<<図 List Domain>>

  

b. DNSプロバイダーとしてRoute53を使用していない場合
   b-1. 作成した証明書の[ドメイン]セクションに表示される[CNAME名]、[CNAME値]をコピーします
   b-2.コピーした[CNAME名]、[CNAME値]を利用しているDNSサーバに追加します
     └ 今回はDNSプロバイダーとして「IIJ DNSプラットフォームサービス」を使用しているので、そちらに追加していきます

設定内容の説明)
      Name:[CNAME名]を入力してください
      TTL :[300]と入力してください
      Type :[CNAME]を選択してください
      Value : [CNAME値]を入力してください

<<図 add record>>

(3)[ドメイン]セクションに表示されてるドメインのステータスが[成功]になっていることが確認できたら、DNSレコード反映は完了です

<<図 Domain List>>

5.(手順):ALBに作成した証明書を反映

作成した証明書をロードバランサ(ALB)に適用させていきます。
正確な手順、最新の情報は、AWSさんのドキュメント「Application Load Balancer のHTTPSリスナーを更新する」をご参照くださいませ。

5-1. 事前確認(ブラウザ)

(1)webブラウザから現在の証明書を確認します

   【chromeの場合】

    ①アドレスバーの左側にある「調整アイコン」をクリックします

<<図 chrome>>

    ②表示されたタブから「この接続は保護されています」をクリックします

<<図 chrome>>

    ③「証明書は有効です」をクリックします

<<図 chrome>>

    

    ④証明書ビュワーが表示されます
     ここに表示されている内容が、適用されている証明書の内容です
     例)「発行日」 :2023年10月19日木曜日 9:00:00
       「有効期限」:2024年11月17日日曜日 8:59:59

<<図 Certificate Viewer>>

    ⑤「詳細(D)」をクリックします

<<図 Certificate Viewer>>

     ⑥「証明書のフィールド」から「シリアル番号」をクリックします

      「フィールド値」に表示された値が現在適用されているACM証明書のシリアル番号です

<<図 Certificate Viewer>>

5-2.ALBに証明書を反映

(1)EC2コンソールを開くため、以下のURLをクリックします
https://console.aws.amazon.com/ec2

(2)左ペインから[ロードバランサー]をクリックします

<<図 EC2 Console>>

(3)証明書を更新するロードバランサーをクリックします

<<図 Load Balancer>>

(4)[リスナーとルール] タブから、[Protocol:Port] 列にある「HTTPS:443」クリックします

<<図 Load Balancer>>

(5)リスナーの詳細ページから[証明書] タブをクリックします

(6)今回は既にある証明書を新しいものに切り替えるので、[デフォルトを変更] を選択します

<<図 Load Balancer>>

新しく証明書を追加する場合は、[SNIのリスナー証明書]にある[証明書を追加]をクリックした後に作成した証明書を追加します

<<図 Load Balancer>>

(7)作成した証明書を選択します

例)「証明書ID」:96e47a36-b18c-4ed8-850b-c5815b09bd8b

<<図 Load Balancer>>

(8)[デフォルトとして保存] をクリックします

<<図 Load Balancer>>

5-3.事後確認(ブラウザ)

(1)再度webサイトを開き、証明書の[発行日]、[有効期限]の日付が作成した証明書の日付と一致していることを確認します
  例)更新前
     「発行日」 :2023年10月19日木曜日 9:00:00
     「有効期限」:2024年11月17日日曜日 8:59:59
    更新後
     「発行日」 :2024年9月12日木曜日 9:00:00
     「有効期限」:2025年10月13日日曜日 8:59:59

<<図 Certificate Viewer>>

(2)以下の2つの番号の一致を確認できたら、ALBへの適用は完了です

  ・「証明書のフィールド」内にある「シリアル番号」の値
  ・今回作成した証明書の「シリアル番号」の値(ACMコンソールにて確認)

<<図 Certificate Viewer>>

おまけ(証明書をCloudFrontに適用)

今度は作成した証明書をALBではなくCloudFrontに適用していきます。
正確な手順、最新の情報は、AWSさんのドキュメント「CloudFront ディストリビューションを更新する」をご参照くださいませ。

(1)webサイトから現在の証明書を確認します
   例)更新前
      「発行日」 :2024年7月2日火曜日 9:00:00
      「有効期限」:2025年8月1日金曜日 8:59:59

<<図 Certificate Viewer>>

(2)AWS CLoudFrontコンソールを開くため、以下のURLをクリックします

https://us-east-1.console.aws.amazon.com/cloudfront/v4/home?region=ap-northeast-1#/welcome

(3)左ペインから「ディストリビューション」をクリックします

<<図 CloudFront Console>>

(4)証明書を更新するディストリビューションをクリックします

<<図 distribution>>

(5)[一般]から[編集]をクリックします

<<図 distribution>>

(6)[Custom SSL certificate]から今回新規に作成したACM証明書を選択します
   例)f27c2967-95a9-4582-a6b3-18b2af2c1c36

<<図 distribution>>

(7)その他の内容は変更せず、[変更を保存]をクリックします

<<図 distribution>>

(8)webサイトから証明書の[発行日]、[有効期限]の日付が作成した証明書の日付と一致していることが確認できたら、CloudFrontへの証明書適用は完了です
  例)「発行日」 :2024年9月10日火曜日 9:00:00
    「有効期限」:2025年10月10日金曜日 8:59:59 

<<図 Certificate Viewer>>

X.勉強したページ

本ブログを書く際に参照したAWSさんの公式ドキュメントは以下の通りです。

Y.eyeonの宣伝

無事に隣の人とハイタッチできましたでしょうか?長々と書きましたが、こんな作業は面倒ですよね。
メンドイよ!って場合はぜひ、AWSインフラの構築、監視、運用のすべて、またはどれかをeyeonにお任せいただけると嬉しいです!

一覧へ戻る