ACM の証明書認証を Cloudflare の DNS で認証する方法
はじめに・・
AWS では TLS/SSL 証明書の発行にて AWS Certificate Manager(以後ACM) なる便利なサービスがあります。
証明書を発行し AWS が提供する DNS サービス Amazon Route53 のドメイン認証と連携すると TLS/SSL 証明書の更新が全自動で出来たりしてすごく便利です。
今回はその ACM 証明書の DNS 認証を Cloudflare で行う手順です。
なぜ Cloudflare で DNS 認証をするのか?
今回の構成です。
だいたいこの構成図を見た段階で AWS 詳しい方からは 「なぜ Amazon Route53 を使わないの?」 と疑問に思うかもしれません。
単純な理由です。
Cloudflare 管理している人と AWS 管理している人が別なんです
ドメイン保有者と配信リソース保有者が別なケースってのもあるんです。今後、世の中マルチクラウド化に進むと思うので、こういった構成って普通に出てくると思いますー
設定の手順
さて構成がわかった所で具体的な設定の手順を以下に記載します。
- ACM で証明書を発行する
- CNAME 名や CNAME 値を取得する
- Cloudflare で CNAME レコードを登録する
- しばらく待って 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 のどのサービスで利用できるかは以下ドキュメントよりご参照ください。
以上で設定手順は終了となります。
最後までお読みいただきありがとうございました。この記事が誰かの参考になれば幸いですヽ(^o^)丿
Discussion