ACMで管理されているSSL/TLS証明書の自動更新失敗について

eyecatch_certificate_manager

はじめに

Amazon Certificate Manager(以降、ACM)から取得したSSL/TLS証明書についての有効期限について書いてみます。
ACMで提供されるSSL/TLS証明書は13ヶ月の有効期限が設定されており、有効期限間近になるとACM側で自動更新が実施されます。
ですが、一部の証明書は自動更新が実施されずに手動にて更新を行う必要があります。

どういった時に自動更新されないか?

ACMで管理されている証明書で自動更新が実施されない理由は以下になります。

自動更新プロセス適用条件 AWS Certificate Manager (ACM) 証明書の自動更新時の注意点

通常、ACM では自動で証明書更新が完了いたします。ご利用者側で証明書をインストールしたりソフトウェアを更新いただく必要はありません。自動更新による通信の瞬断もありません。証明書の保守管理が理由でWebサイトなどを一時停止する必要無いのは便利ですね。

この自動更新が完了するには以下の条件を全て満たす必要があります。

証明書に記載されている全ての完全修飾ドメイン名 (FQDN) が DNS で名前解決できること。なお、ワイルドカードドメイン (例:*.example.com) に関しては ACM は名前解決の確認を行いません。

CloudFront や ELB (Classic Load Balancer や Application Load Balancer) など、証明書と関連づいている AWS リソースが、インターネット経由で SSL/TLS 接続できるようになっていること。 なお、ワイルドカードドメイン (例:*.example.com) に関しては、ACM側が接続先を正しく特定できない可能性があるので、この先に書かれている「自動更新が失敗した場合」に備えてください。 これらの条件に当てはまらない場合は自動更新が失敗することになります。

纏めると次の条件に当てはまる証明書は自動更新が実施されません。

  • ワイルドカード証明書を利用している

また以下の条件でも証明書の自動更新に失敗する可能性があります。

  • 証明書がELBやCloudFrontに証明書が適用されていない
  • 証明書が適用されているELBやCloudFrontへのアクセスが発生していない
  • ACM以外で取得した証明書をインポートしている

自動更新に気づくには?

上記のように自動更新プロセスが適用されない証明書については2パターンで対応が有効と考えられます。

スクリプトによる更新時期確認

ACMにて管理されている証明書は以下のスクリプトにて有効期限を確認することが出来ます。
[ACM] 証明書の全リージョン証明書の有効期限チェックをCLIで実施してみた

AWSからの検証メールによる通知

AMCを利用しているAWSアカウントに対して次の件名でメールが送付されます。
基本的にAction Requiredの件名でメールを受信した時は注意が必要です。

Action Required - Your certificate renewal

証明書の有効期限が切れるタイミングが近い

URGENT Action Required - Your certificate renewal

証明書の有効期限が切れるタイミングが直近に迫っている

Your certificate has expired

対象の証明書が失効してしまった

Your certificate is renewed

SSL/TLS証明書が無事更新された場合に送付されます。

手動による証明書更新対応方法

対応方法はACMにて証明書を取得した時のメールと同じように検証用メールのApproveをクリックして更新を行います。
検証用メールが見当たらない場合は次の手順で検証用メールを再送信することが出来ます。

  1. AWSマネジメントコンソールにログイン
  2. Certificate Managerを選択
  3. 更新対象の証明書チェックボタンを選択
  4. [アクション]-[検証Eメールの再送信]を選択
  5. 検証メールアドレスに送信された「Certificate approval for <ドメイン名>」に記載されている「Amazon Certificate Approvals」を選択
  6. 承認ページが表示されますので、ドメイン名・AWSアカウントID・証明書識別子に相違がないことを確認して「I Approve」を選択
  7. 「Success」が表示されることを確認
  8. Certificate Managerに戻って頂き、証明書の更新ステータスが「成功」になっていることを確認

以上にて、更新手続きは完了です。

最後に

現在、SSL/TLS証明書は多く利用されており、ACMの登場によって証明書を利用することでハードルも低くなったと思います。 その分、今回のような通知についても見落としがちになってしまうのでサービス運用者の一助になることを願います。

合わせて他記事をお読みいただけると幸いです。

Certificate Manager