Cloudflareのカスタムホストネーム、カスタム証明書のHTTP認証をやってみた

2022.10.07

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

こんにちは、yagiです。

Cloudflareのカスタムホストネーム、カスタム証明書の認証方法について、以前はTXTレコードでの認証を実施していましたが、 DNS側にTXTレコードの登録ができない場合がありました。

その際の対処法として、CloudflareからHTTP認証を案内されたため、紹介したいと思います。

 Verify custom hostnames · Cloudflare for Platforms docs

やってみる

最初にCloudflare側のDNSの登録をします。 TypeはCNAMEを指定し、Nameについては、ここではカスタムホストの作成で指定するオリジンサーバ名を決めて入力します。Cloudflareの向き先をTargetに指定します。

次に Add custom Hostname を押下してカスタムホストの追加をします。

今回はCloudflareのユニバーサル証明書を使いたいので、Certificate TypeはProvided by Cloudflareを選択しました。

そして、SSL certificate authorityに Google Trust Service を選択して、Certificate validation method に HTTP Validation を選択します。

Custom origin Server には先ほどCloudflareのDNSで入力したオリジンサーバ名に「.サイト名」を付与した値を入力します。

今回はマルチテナント運用のため、Host Headerを指定します。

そうすると証明書の検証リクエストとレスポンスの値、ホスト名の事前検証のTXTと値のペアがそれぞれ出力されるのでコピーします。

それぞれのパスの配下にファイルを作成し、ファイル内に値を記入しておきます。

私はオリジンにS3を使ったので、S3にファイルを格納しています。

しばらく待つと(数分かからない程度)ステータスがActiveになります。

ステータスがActiveになることを確認できたら、DNSでCloudflareへサイトの向き先の切り替えを行います。(今回はAレコードの削除と追加)

以下の通り、TXTレコードは今回作成していません。

結論

カスタムホストのホストネーム及び証明書検証にTXTレコードをDNSに登録することができない場合などに利用できる、HTTP検証について紹介しました。

どなたかの参考になれば幸いです。