
AWS Certificate ManagerでのSSL証明書更新漏れ対策について
はじめに

Web運用をしていく中で毎年憂鬱になるもの、そうSSL証明書の更新です。
「またこの季節が来たか。。。」と嘆いている方もたくさんいるのではないでしょうか。
しかも気付かないうちにSSL証明書の期限が切れていたら目も当てられません。
そこで今回は、SSL証明書の自動更新の方法と、自動更新の条件に当てはまらない場合の期限切れ対策についてご紹介します!
記事前半ではSSL証明書自動更新の方法を、後半では自動更新できない場合の対策をお伝えします。SSL証明書の仕組みやACM導入のメリットを、ご確認ください。。
AWS Certificate Manager(ACM)とは
まず、SSL証明書自動更新の際に利用するAWS Certificate Manager(以下、ACM)について簡単にお伝えします。

ACMとはAWS上で使用するSSL/TLS証明書の作成・管理を行うマネージドサービスです。AWSにおけるSSL証明書を発行した後、その管理も一括で行えます。
ACMの優れた点として、基本的な機能を無料で使用できる点が挙げられるでしょう。証明書の発行や保管に伴う料金を心配することなく、AWSで動かしているサービスのSSL・TLSに貢献できる製品です。
ACMの主な機能
ACMは、以下のような機能を備えていることから大いに活躍しているサービスです。
フルマネージドサービス
ACMは、フルマネージドサービスとして提供されています。証明書に関する手続き、つまり発行から管理、更新に至るまで、全てのプロセスが自動で実行可能です。
証明書管理の負担を削減し、コア業務への集中を促せます。
AWSとの統合環境構築
ACMは複数のAWSサービスとの連携が可能な点も便利なサービスです。代表的な連携可能なサービスとして、
- Amazon Elastic Load Balancer(ELB)
- Amazon CloudFront
- Amazon API Gateway
などが挙げられます。
複数ドメインの保護
ACMは、複数のドメインを一つの証明書で対処することができます。いわゆるSAN(Subject Alternative Name)証明書を採用することで、ドメインを多く所有していても管理が煩雑化することはありません。
ACM利用によるメリット

ACM利用によるメリットは前述していますが、要点は以下の二つです。
SSL証明書が無料
SSL証明書自動更新機能
ACMは、なんといってもSSL証明書を無料で発行できる点にあるでしょう。証明書発行に伴うコストの発生を抑制し、費用対効果の高い業務遂行能力を獲得できます。
また、ACMで発行した証明書は自動で更新される点も魅力です。証明書の更新を忘れてしまった、証明書更新の手間が面倒といった悩みに、効果を発揮します。
ただし、これらの恩恵を堪能するためにはいくつか条件があります。
SSL証明書が無料
無料でサービスを提供できるのは、ACMではパブリック証明書に限ります。プライベート証明書が利用したい場合はプライベートCAを作成する必要があり 作成には料金が発生しますのでご注意ください。
SSL証明書自動更新機能
自動更新機能は、あらゆる条件下で必ずその役割を果たしてくれるとは限りません。自動更新機能を有効にするためには、いくつかの条件が整っている必要があります。。
- 1.証明書がAWSリソース(ELB、CloudFrontなど)に関連付けられていること
- 2.上記リソースがSSL/TLS接続できること
- 3.証明書に記載されているFQDNが名前解決できること
また、外部からインポートした証明書についても自動更新が行われませんのでご注意ください。
さらに、証明書をACMで作成する際に検証方法を「DNS検証」、「Eメール検証」から選択しますがEメール検証については注意が必要です。
特定のメールアドレスに対して認証URLが記載されたメールが送付され、そのURLをクリックすることで検証されるのですが、対象ドメインに対してパブリックからHTTPSアクセスできることが条件となります。
IP接続制限を行っている場合、上記条件より自動更新が失敗となり、手動で更新をしなければなりませんのでご注意ください。
設定後に自動更新の対象となっているかは、AWSコンソール上から確認出来ますので設定が完了したら確認してみましょう。
ACM利用の注意点
ACM利用の注意点としては、まず証明書の有効期限が13ヶ月である点です。13ヶ月ごとに証明書は自動更新されますが、上述の条件を満たしていないと、更新が行われないまま放置されてしまうことがあるため、気をつけておきましょう。
また、現在運用しているリージョンによって、有効な証明書も異なります。リージョン移動が発生した場合、証明書のリクエストやインポートが発生することから、自動更新などの条件が変更される場合があるため注意が必要です。
ネットワークの構成の条件によって、自動更新できないSSL証明書の期限切れ対策
前述した条件をクリア出来ない場合、SSL証明書を手動で更新しなければなりません。気付かないうちに証明書が期限切れとなっていた。。。なんてことにならないように以下のように対策することをおすすめします。
CloudWatchを使って、SSL証明書の期限を監視する
CloudWatchのメトリクス「DayToExpiry」にて証明書の期限を見ることができます。
すべてのメトリクスから「CertificateManager」→証明書メトリクスと進むと、作成した証明書が表示されます。
折れ線グラフでわかりづらい場合は「線」→「数値」に変更することで期限の日数を表示できます。

ここからアラート通知するよう設定していきます。
アクションのベルのマークをクリックして「アラームの作成」を実行します。

「メトリクスの条件の指定」にて期間を「1日」、条件の「より低い(<しきい値)」を選択して任意に日数を入力します。

「次へ」をクリックし、通知の設定へ進みます。
「新しいトピックの作成」を選択後、任意のトピック名の入力と通知を受け取るメールアドレスを設定し「トピックの作成」をクリックします。

AWSからサブスクリプションの確認メールが送られてきますのでメール本文内のURLをクリックすると登録が完了します。
後はアラーム名と説明を入力し、次画面で設定内容を確認後、問題無ければ「アラームの作成」をクリックするだけです。
設定した期限を過ぎるとメールで教えてくれるので、その時は忘れずに証明書を更新しましょう。
まとめ

今回は、ACMの機能によるSSL証明書の更新漏れ対策について簡単に記載させて頂きました。ACMはSSLの作成や管理を自動化でき、更新作業も自動化できるので非常に便利なサービスです。更新忘れや更新の負担を排除できる製品ですが、運用に際しては条件もあるため、クリアにしておく必要があります。
ぜひこの記事を参考にSSL証明書の自動更新を試してみてください。
今回のケースに当てはまらない・またもっと自由に証明書期限の監視をしたい。証明書更新もお願いしたい!ということであればぜひ弊社の監視サービスをご検討ください。