5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CloudflareAdvent Calendar 2022

Day 24

Cloudflare for SaaS (旧 SSL for SaaS) でカスタムホスト利用する際のフロー図

Last updated at Posted at 2023-06-12

目的

ドキュメントで英語の文字だけを読んでもわかりづらい部分があるので、フロー図を作ってわかりやすく整理しておきます。

(ついでに Qiita で mermaid 使う練習)

image.png

カスタムホスト作成(Add Custom Hostname)

カスタムホスト作成時には、このようなフローになります。
以下、ポイントを解説します。

  • カスタムホスト利用開始時に、ダウンタイムが許容されるかで Pre-validation を実施すべきかを決める
  • ダウンタイムが許容される場合
    • どの検証方法も使えるが、先に DNS 宛先を設定し、自動 Auto 検証を使うことで手間を省くことできる(もちろん他の検証方法も利用可能)
  • ダウンタイムが許容されない場合
    • 両方の検証において、事前に Pre-validation を実施し、ホスト名と証明書の両方が Active であることを確認した上で、DNS 宛先を切り替えることでダウンタイムを回避できる
  • ワイルドカード証明書を使う場合には、TXT ベースの DCV(証明書ドメイン認証)が必須

固定 IP (Static IP) オプションの必要性

Static IP addresses: Cloudflare sets static IP addresses for your domain. For more details, contact your account team.

Zone Apex など、DNS 宛先設定に A/AAAA レコードを使う必要がある場合は 固定 IP (Static IP) オプションを別途追加して利用することが望ましい

  • 通信フローに関して、A/AAAA レコードの宛先が Cloudflare IP Ranges の範囲であれば、問題なく機能するが Cloudflare IP Ranges が変更されない保証はない
  • 固定 IP (Static IP) オプションであれば、固定である(変更されない)ことが保証される
  • Apex Proxying によるホスト名検証に関しては初回の一度きり完了すればよいが、該当の SaaS ゾーンに紐づいた Apex Proxying 用の IP に変更があった場合は、新規カスタムホスト名検証時に都度変更を周知する必要がある

証明書更新(Renew)

証明書更新時には、このようなフローになります。
自動更新(Auto-Renew)となるように設計することが推奨です。

手動による検証再始動

You can send a PATCH request to request an immediate validation check on any certificate. The PATCH data only needs include the same ssl object as the original request.

ダッシュボードから Custom Hostname > Refresh をクリックするか、同じ ssl 設定で PATCH リクエストを送ることで、Hostname / Certificate validation check を再始動できます。
(一旦、Hostname validation check が Active になった後は、Hostname validation check は再始動しません。)

export EMAIL='YOUR_EMAIL'
export APIKEY='YOUR_APIKEY'
export ZONE_ID='YOUR_ZONE_ID'
export CUSTHOST_UUID='YOUR_CUSTOM_HOSTNAME_ID'

curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames/$CUSTHOST_UUID" \
  -X 'PATCH' \
  -H "X-Auth-Email: $EMAIL" \
  -H "X-Auth-Key: $APIKEY" \
  -H "Content-Type: application/json" \
  --data-raw '{"ssl":{"method":"txt","type":"dv","settings":{"min_tls_version":"1.2"}}}'

【参考】HTTP 検証エンドポイント / TXT 検証レコードの例

  • Hostname validation check
    • HTTP token
      • url: http://$CUSTOM_HOSTNAME/.well-known/cf-custom-hostname-challenge/<custom-hostname-UUID>
    • TXT record
      • name: _cf-custom-hostname.$CUSTOM_HOSTNAME
  • Certificate validation check
5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?