🤖

ACM の証明書認証を Cloudflare の DNS で認証する方法

2024/02/23に公開

はじめに・・

AWS では TLS/SSL 証明書の発行にて AWS Certificate Manager(以後ACM) なる便利なサービスがあります。

証明書を発行し AWS が提供する DNS サービス Amazon Route53 のドメイン認証と連携すると TLS/SSL 証明書の更新が全自動で出来たりしてすごく便利です。

今回はその ACM 証明書の DNS 認証を Cloudflare で行う手順です。

なぜ Cloudflare で DNS 認証をするのか?

今回の構成です。

だいたいこの構成図を見た段階で AWS 詳しい方からは 「なぜ Amazon Route53 を使わないの?」 と疑問に思うかもしれません。

単純な理由です。

Cloudflare 管理している人と AWS 管理している人が別なんです

ドメイン保有者と配信リソース保有者が別なケースってのもあるんです。今後、世の中マルチクラウド化に進むと思うので、こういった構成って普通に出てくると思いますー

設定の手順

さて構成がわかった所で具体的な設定の手順を以下に記載します。

  1. ACM で証明書を発行する
  2. CNAME 名や CNAME 値を取得する
  3. Cloudflare で CNAME レコードを登録する
  4. しばらく待って ACM 証明書の検証状況を確認する

1.ACM で証明書を発行する

まずは TLS/SSL 証明書を ACM で発行します。
コンテンツをインターネット上に公開しますので、パブリック証明書をリクエストします。

完全修飾ドメイン名を入力し、検証方法は DNS 検証を指定します。

なお、 ACM ではワイルドカード証明書も発行できますので、今回はアスタリスク(*)を指定し、複数ホスト指定できるようにしました。

このまま下にスクロールしてリクエストボタンを押します。

2.CNAME 名や CNAME 値を取得する

証明書の作成をリクエストをしましたが、まだ検証されていませんのでステータスは「保留中の検証」のままです。

この検証を行うために DNS ゾーン情報内で CNAME などを登録するのですが、今回は Cloudflare を利用します。

証明書ID をクリックすると詳細が表示されます。その中に「 CSV にエクスポート」がありますので、CNAME 名や CNAME 値を CSV データとして取得します。

CSV データの内容は以下のような感じになっています。

Domain Name,Record Name,Record Type,Record Value
*.maijun.net,_e129dbeb56ab20493cfd8f16bb7fcd64.maijun.net.,CNAME,_be7dc3101541256be4d1630b9210230d.mhbtsbpdnt.acm-validations.aws.

3.Cloudflare で CNAME レコードを登録する

登録するレコード情報の取得ができましたので、 CNAME レコードを登録します。

まずは Cloudflare で登録したドメインを選択します。

ナビゲーションペイン(左側)にある[ DNS ]-[レコード]を選択します。

CNAME レコードとして登録しますので、[レコードの追加]を押します。

タイプは CNAME 、名前は ACM から取得した CSV データ内に記載されている Record Name の内容、ターゲットには CSV データ内に記載されている Record Value の内容を入れていきます。

プロキシは無効にします。

入力が終わりましたので保存します。

4.しばらく待って ACM 証明書の検証状況を確認する

Amazon Route53 で検証するのに時間はそんなに待ちませんが、今回はクラウドベンダーが別です。検証状況がなかなか進みません。

10分ぐらいコーヒーブレイクで待ってみてください。

コーヒー飲んで休んでいる間に無事に検証が終わりステータスも発行済みになりました。

まとめ

ACM で TLS/SSL 証明書を作成しましたので、あとは ALB や CloudFront などで利用が出来るようになりましたね。

ちなみに、この証明書が AWS のどのサービスで利用できるかは以下ドキュメントよりご参照ください。
https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html

以上で設定手順は終了となります。

最後までお読みいただきありがとうございました。この記事が誰かの参考になれば幸いですヽ(^o^)丿

Discussion