AWS Certificate Managerを利用してSSL/TLS認証書をリクエストしてCloudFrontに統合してみた。

2021.11.11

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

こんにちは、イムチェジョンです。
今回のブログではACM(AWS Certificate Manager)を利用してSSL/TLS(Secure Sockets Layer/Transport Layer Security) 認証書をリクエストしてみました。
また、取得したSSL/TLS 認証書をCloudFrontに統合することまでまとめました。

アジェンダ

  1. SSL/TLS 認証書、AWS Certificate Managerとは?
  2. ACMでSSL/TLS認証書をリクエスト
  3. まとめ

1. SSL/TLS 認証書、AWS Certificate Managerとは?

1-1. SSL/TLS

  • SSL(Secure Sockets Layer)
    • インターネット接続を安全に維持し、システム間で送信されるすべての機密情報を保護
    • 犯罪者がすべての情報(個人情報の可能性がある情報を含む)読んだり修正できないようにする技術
    • ユーザーとサイト間またはシステム間で送信されるデータを読み込めないようにすることでセキュリティを強化
  • TLS(Transport Layer Security)
    • SSLセキュリティを強化した後続プロトコル

1-2. SSL/TLS認証書の種類

  • ドメイン認証型SSLサーバ証明書
    • ドメイン使用権の有無のみを認証するSSLサーバ証明書
    • 機械的な発行処理によって比較的低価格・短時間で取得が可能
  • 企業認証型SSLサーバ証明書
    • ドメイン認証型SSLサーバ証明書 + ウェブサイト運営団体の実在性を認証するSSLサーバ証明書
    • 情報の照会や、電話による確認などを行う
    • 認証強度が強く、高い信頼性を実現する
  • EV SSL証明書
    • 企業認証型SSLサーバ証明書 + ウェブサイト運営団体の実在性を最も厳格に認証するSSLサーバ証明書
    • 企業認証型SSLサーバ証明書よりも高いレベルの信頼性を実現する

1-3. AWS Certificate Manager

  • SSL/TLS認証書を管理、アップデート
  • 一般的な SSL/TLS 証明書は、1年ごとに入れ替えが必要になるが、ACM を利用すると SSL/TLS 証明書の入れ替え作業が不要
  • AWS Certificate Managerを利用すれば、SSL/TLS認証書を速やかにAWSリソースに配布可能
    • Elastic Load Balancing、
    • Amazon CloudFront配布、
    • Amazon API Gateway API
    • など、、

2. ACMでSSL/TLS 認証書をリクエスト

今から実際にAWS Certificate Managerを利用してSSL/TLS認証書を発行してみましょう。
SSL/TLS認証書の取得は以下の順番で行います。

  1. AWS Certificate ManagerでSSL/TLS認証書をリクエスト
  2. 検証(Route53の設定)
  3. CloudFrontとSSL/TLS認証書を統合
  4. 統合されたのを確認

2-0. 下準備

SSL/TLS 認証書を取得する前に必要な下準備です。

ドメイン

AWS Certificate ManagerでSL/TLS認証書をリクエストして検証する時にドメインが必要です。今回は無料ドメインをRoute53に登録して使います。
Route53の使い方については下のブログを参考してください。

CloudFrontの作成

今回のブログではCloudFrontの作成は省略しますので、CloudFrontの作成については下のブログを参考してください。

2-1. AWS Certificate ManagerでSSL/TLS認証書をリクエスト

今回は実際にSSL/TLS認証書のリクエストをしてみましょう。

まず、ACM(AWS Certificate Manager)ページで[証明書をリクエスト]をクリックします。

ACMでパブリック証明書をリクエストは無料なので、これをクリックして[次へ]行きます。

ドメイン名は自分が持っているドメインを入力します。
私はRoute53に登録されている無料ドメインを使用します。
routetest.ml
*.routetest.ml
検証方法はRoute53でする予定なので、DNS 検証 - 推奨を選択します。

この後、リクエストをクリックすると簡単にSSL/TLS認証書のリクエストができました。
リクエストは完了しましたが、このままではまだ使えないです。
認証書のステータスを確認してみると、まだ検証されてないため、保留中の検証になっています。

次に検証をして認証書を使える状態に変更します。

2-2. 検証(Route53の設定)

認証書をリクエストする時に選択したDNS 検証 - 推奨方法で検証を行います。
検証をするためにRoute53ページに移動して認証書のリクエストする時に使ったドメインを選択します。

新しいレコードを作成しましょう。 レコードに作成する内容はACMの認証書ページで確認できます。

レコード名 : acm(任意) レコードタイプ : CNAME 値 : (認証書ページのCNAME名)

レコードを作成してから少し待つと、上で確認した認証書のステータスの状態が発行済みに変更されたのが確認できます。

これでSSL/TLS認証書を使う準備ができました。
次はCloudFrontと統合してみます。

2-3. CloudFrontにSSL/TLS認証書を統合

CloudFrontにSSL/TLS認証書を統合してみましょう。
CloudFrontの設定を変更します。

カスタマ SSL 証明書のオプジョンで上で作成したACM証明書を選択します。

変更を保存すると、カスタマ SSL 証明書とセキュリティポリシーが確認できます。

2-4. 統合されたのを確認

実際に認証書が統合されているのを確認してみましょう。
CloudFrontのディストリビューションドメイン名でインタネットに接続します。

すると、錠前の絵文字ができます。これが見えると証明書が成功的に統合されたのです。

実際に詳細情報を確認してみると、Amazonで発行されたのも確認できます。

3. まとめ

ここまでAWS Certificate Managerを利用してSSL/TLS認証書を発行し、CloudFrontと統合することまでまとめました。