別のAWSアカウントで管理しているドメインを使ってACMで証明書を発行して、ELBの証明書を入れ替えてみた

2020.10.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。コンサル部@リモートのYui(@MayForBlue)です。

前回のブログ(下記)に引き続いて、今回は「別のAWSアカウントのRoute53で管理しているドメイン」を使ってACMで証明書を取得してELBのデフォルト証明書を入れ替える方法をご紹介します。

前提

  1. ELBには既にACMの証明書が適用されている
  2. 新たにACMで証明書を取得して、ELBにデフォルト証明書として登録する(旧の証明書と入れ替える)
  3. 証明書を取得するドメインは別のAWSアカウントのRoute53で管理している

1,2は前回と同じで、3が前回と異なる点です。

手順

ACMで証明書を発行する

前回と同じく、まずはACMで証明書を発行します。

ACMのマネジメントコンソールで「証明書のリクエスト」をクリックします。

「パブリック証明書のリクエスト」を選択して「証明書のリクエスト」をクリックします。

証明書に使用するドメイン名を入力します。
ワイルドカード証明書が必要な場合は「この証明書に別の名前を追加」をクリックして、ワイルドカードを用いたドメイン名も入力します。
(例:example.com / *.example.com

検証方法を選択して「次へ」をクリックします。 今回は「DNSの検証」を選択しました。(DNSの検証を選択することで証明書の自動更新が可能です。)

必要に応じてタグを追加します。

内容を確認して問題なければ「確定とリクエスト」をクリックします。

ステータスが「検証保留中」になります。

Route53のホストゾーンにCNAMEを登録する

ここからが今回必要な手順です。

ACMにて証明書発行をリクエストすると、以下のようにDNSに登録するためのCNAMEレコードが表示されます。
これを、ドメインを管理しているアカウントのRoute53ホストゾーンに追加する必要があります。

ドメインを管理しているAWSアカウントにログインします。

Route53のホストゾーン一覧から対象のホストゾーンのドメイン名をクリックして詳細画面に移動します。

「レコードを作成」をクリックします。

ルーティングポリシーを選択し、「次へ」をクリックします。

「シンプルなレコードを定義」をクリックします。

それぞれ以下を入力し、「シンプルなレコードを定義」をクリックします。

  • レコード名:ACMにて表示されたCNAMEレコードの左側の値
  • 値/トラフィックのルーティング先(タイプ):レコードタイプに応じたIPアドレスまたは別の値
  • 値/トラフィックのルーティング先(値):ACMにて表示されたCNAMEレコードの右側の値
  • レコードタイプ:CNAME

(参考)

内容に問題なければ、「レコードを作成」をクリックします。

レコード追加から一定時間経過すると、ドメインの検証が成功し、証明書が「発行済み」になり、証明書が利用できます。

ELBのデフォルト証明書を入れ替える

ここからは前回の手順と同じです。
発行したACM証明書をELBのデフォルト証明書にします。

対象のELBを選択し、「リスナー」のタブから対象のリスナーを選択し、「編集」をクリックします。

「デフォルトのSSL証明書」にて「ACMから(推奨)」を選択し、右側プルダウンで新しく発行した証明書を選択し、画面右上の「更新」をクリックします。

更新ボタンクリック後、「ポート443でリスナーが正常に変更されました」というメッセージが表示されれば、作業完了です!

念のため、ブラウザなどで証明書を確認し、意図したものになっているか確認してみてください。

さいごに

「別のAWSアカウントのRoute53で管理しているドメイン」を使ってACMで証明書を取得してELBのデフォルト証明書を入れ替える方法をご紹介しました。

ACMで証明書を取得する際に、別のアカウントでドメインを管理している場合はそちらでRoute53にレコードを追加しないといけないことをすっかり忘れていてハマりそうになりました。
この記事がどなたかのお役に立てば幸いです。

以上、コンサル部@リモートのYui(@MayForBlue)でした。