2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS Certificate ManagerでEメール認証からDNS認証に切り替え

Posted at

メール連絡

AWSより以下のメール連絡がありました。
Changes to AWS Certificate Manager (ACM) email validated certificate renewal workflow

これはaws acmで管理しているSSL/TSL証明書の認証方法が変わりましたよ
という案内で、要はEメール認証は今後自動更新に対応しないので
DNS認証に切り替えをおすすめしますという内容のメールでした。

現在のドメイン設定を確認

ドメインレジストラ | お名前ドットコム

AWS構成

Route 53 → CloudFront → Elastic Beanstalk(ALB → EC2) → RDS
↑この構成の場合SSL/TSL証明書は
CloudFront(バージニアリージョン)
ALB(東京リージョン)
と2箇所に設置されているケースが多いと思います。
これはCloudFrontのリージョンがグローバルでかつ
すべてのエッジロケーションに反映されるのに時間がかかる場合があることが理由です。
このように証明書を分けておくことでCloudFrontでトラブルが起こった際にも
Route53 → Elastic Beanstalk(ALB → EC2) → RDSのように
切り替えたり、CloudFrontのディストリビューションを
新たに作ったりする事によって柔軟に対応ができるメリットがあります。
逆に証明書を共通にしてしまうと逃れられないダウンタイムが発生するリスクが想定できます。

現在の認証方法

Email認証

証明書の認証方法の切り替えはできない

現在のEmail認証で使用している証明書をCDN認証に切り替えることは出来ないため、新しくCDN認証の証明書を作る形で申請をする。

新規CDN認証をCertificate Managerから申請する作業手順

1.リージョンを確認し、Certificate Managerコンソール画面の証明書リクエストをクリック
2.パブリック証明書のリクエストにチェックが入っていることを確認し【証明書のリクエスト】をクリック
3.*.example.comで設定し【次へ】をクリック
(当方の環境ではhttp、wwwなしのネイキッドドメインへのアクセスはすべて https://www.example.com へ301しているという環境のためこの設定ですがサブドメイン運用や細く設定する必要があれば適宜ここで設定できると思います。)
4.DNSの検証にチェックを入れて【確認】をクリック
5.内容を確認して【確認とリクエスト】をクリック
6.DNS検証の為のネームサーバへ設定する値が表示されますのでネームサーバへ設定します。Route53を使用している場合は【Route53でのレコードの作成】ボタンを押すと、Route53コンソールにCNAMEレコードが設定されます。ここで場合によっては反映されるまでには時間がかかります。30分くらいは時間を置くのが良さそうです。
※ここでいうネームサーバとはRoute53のようなDNSサービス内の設定項目のことです。

証明書を割り当てる

私の環境の場合CloudFrontとALBの2箇所に割り当てます。

CloudFrontへの設定

CloudFrontのコンソール画面からディストリビューションを選び【一般】→【編集】から
【SSL Certificate】 → 【Custom SSL Certificate】 → 【今回作成した証明書】を選び設定します。

注意点|CloudFront設定時

CloudFrontはエッジロケーションと呼ばれるサーバを複数持っており、約24時間は証明書が古いものと
新しいものを使用しているサーバが混在する状況となるようです。したがって旧証明書も約24時間以降に
削除したほうが安全とのことです。
ちなみにCertificate Managerのコンソール画面では証明書が使用中という項目がありますが
新しい証明書を適用後ここを見ていましたがすぐにはいいえになりませんでした。

ALB( Beanstalk内)への設定

【Beanstalkコンソール】 → 【ロードバランサー】 → 【編集】 →
【該当するリスナーを選択してアクション→編集】 → 【SSL証明書を選択】 →
最後忘れずに画面最下部の 【オレンジの適用ボタン】をクリックすると反映が始まります。
自分の環境ではおそらく10分もかからずに反映されました。
反映中も該当のURLをリロードしてみましたがダウンタイムは確認できませんでした。
Certificate Managerのコンソール画面、証明書が使用中の項目はすぐにいいえになりました。
(確認できておらず恐縮ですがおそらく即時反映)

作業前、作業中に起こった疑問

Eメール認証している証明書を使用している状態でDNS認証用の証明書を発行することになるわけですが、運用中のドメインで複数証明書を発行することは運用中のサイト表示、メール受信などに影響を与えることはあるのか?という疑問が生まれました。

回答

同ドメインに対する新規証明書を発行すること(2枚の証明書が存在する状態)ではサイト表示、メール送受信には影響が出ない。

余談

今後ACMでSSLサイト公開用の証明書申請するならDNSが良いと個人的には思います。
(AWSのマニュアルでもおすすめされていました。)
Eメール認証だと年1で更新手続きの作業が発生するので面倒&忘れるリスクも0ではありません。

DNS認証の運用で注意したいこと

Route53にCNAMEが設定されているのでこれを削除してしまうと認証が失敗してしまいサイトが表示されないなどの事故が想定できます。Route53のCNAMEに設定されたことは忘れずに&情報共有などをしっかりめにやったほうが良さそうです。

参考ページ

E メールで検証済みの AWS Certificate Manager(ACM)証明書の更新ワークフローの変更
ACMの証明書をDNS検証にする

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?