【PoC 用】Cloudflare Partial (CNAME) setup の手順
はじめに
- PoC の前に Partial(CNAME) Setup で FQDN をプロキシーしておくまでの手順
- オリジンサーバーだけでなく権威 DNS サーバーの設定追加がスグできる環境だと加速
- Cloudflare のダッシュボードはインターネットの変化に合わせ常に変貌するので、スクショは参考まで
アカウントとユーザーの作成 🔗
サインアップページから Email Password を入力し Sign up
GUI
Email は所属組織のもの(個人あるいはグループエイリアス)で

Eメールを確認し Verify your email
Eメール


ダッシュボードが開く
こういうのでたら `Skip`

アカウント名の変更 🔗
ダッシュボード左上の<Eメール>'s Accountをクリック
GUI

アカウントの名前をわかりやすいものに変更
GUI
【アカウント】Manage Account > Settings > Preferences > Account name > Change name

名前変え

Done

ゾーン(ドメイン)の追加 🔗
アカウントにゾーン(ドメイン)を追加
GUI
【アカウント】Account Home Domains
PoC のドメイン名を入力 Manually enter DNS records Continue

ゾーン(ドメイン)に Free プランを適用
GUI
【ゾーン】ドメイン名の横のステータスが Finish setup
Overview Free を選択

ドメイン名の横のステータスが Invalid nameservers に遷移
Continue to activation は無視

GUI
別の方法
【ゾーン】上部のプランをクリック

プラン選択画面

とりあえず、ここまでで OK
PoC の依頼
- ここまでできたら Cloudflare 担当チームに PoC を依頼
- Cloudflare の準備完了連絡を待つ
- 連絡が来たら次に進む
Enterprise プランへの変更 🔗
GUI
【ゾーン】Overview Plan and Add-ons Change

Enterprise Confirm

Partial setup への変更とアクティブ化 🔗
GUI
【ゾーン】Overview DNS Convert to CNAME DNS setup

Convert

Convert

Continue

CNAME setup に変更された

DNS Verification TXT RR の入手 🔗
次の手順で使うため Name と Content をコピー
GUI
【ゾーン】DNS Records Verification TXT Record

権威 DNS サーバーに TXT RR 登録 🔗
表示された TXT RR を権威 DNS サーバーに登録
Route 53 の例

正しく設定されたことを確認 cloudflare-verify.<ドメイン名> TXT
dig cloudflare-verify.oymk.click TXT +short
"578489773-1124702988"
ドメイン所有権の検証再開
Cloudflare によるドメイン所有権の検証を再開
GUI
【ゾーン】Overview Re-activate
Re-activate のあと Pending TXT record が Active になるのを待機

Active!
GUI
【ゾーン】Overview Active
Enterprise plan Partial

Eメールも確認
Eメール


PoC 対象 FQDN とオリジンサーバーの登録 🔗
DNS にオリジンサーバーを登録 🔗
まずは DNS 応答でオリジンサーバーをそのまま返す DNS only 🔗
GUI
【ゾーン】DNS Records Add Record

PoC に使う FQDN の DNS 登録
Type: RR Type(CNAME, A, AAAA)
Name: RR owner name(ホスト名)
Target: RR RDATA(オリジンサーバーのFQDN または IPv4、IPv6 アドレス)
Proxy status: まずは DNS only

DNS チェック
PoC に使う FQDN に Partial Zone Suffix を追加し、DNS が引けることを確認

<FQDN>.cdn.cloudflare.net ➜ Target
dig www.oymk.click.cdn.cloudflare.net +noal +an
; <<>> DiG 9.10.6 <<>> www.oymk.click.cdn.cloudflare.net +noal +an
;; global options: +cmd
www.oymk.click.cdn.cloudflare.net. 300 IN CNAME www.oymk.click.s3.us-east-1.amazonaws.com.
:
次に DNS 応答で Cloudflare IP を返しプロキシーするよう変更 Proxied 🔗
GUI
レコード右端の Edit
Proxy status を Proxied Save

DNS チェック
Proxied にすることで応答が変わることを確認
<FQDN>.cdn.cloudflare.net ➜ Cloudflare の Anycast IP
dig www.oymk.click.cdn.cloudflare.net +noal +an
; <<>> DiG 9.10.6 <<>> www.oymk.click.cdn.cloudflare.net +noal +an
;; global options: +cmd
www.oymk.click.cdn.cloudflare.net. 300 IN A 104.18.28.44
www.oymk.click.cdn.cloudflare.net. 300 IN A 104.18.29.44
TLS 証明書(エッジ証明書)の展開 🔗
エッジ証明書にはデフォルトで Universal 証明書が有効
- Partial セットアップの場合、Proxied 状態の FQDN については、自動で Universal 証明書の発行手続きが開始
- 発行にあたり CA が DCV を実施
- DCV に向けてユーザー側で作業が必要
エッジ証明書の種類
Notification の設定 🔗
エッジ証明書発行の状態変化の通知を仕込む
GUI
【アカウント】Notifications All Notifications Add

Product SSL 検索

Advanced Certificate alert Universal SSL alert

Notification Name Notification Email Save

Done
Test 送信可能

宛先 Webhook も定義可能
Destination Webhooks Create

Eメール
ステータスが変わると連絡が来る


Universal 証明書の有効化 🔗
まず Universal から
(Advanced や Custom でカバーできれば無効にすることも可能)
ACME DCV の選択
PoC での ACME DCV は下記で選択
有効化に必要なユーザー作業
| FQDN | 証明書 | DCV | 作業対象 | 作業内容 | |
|---|---|---|---|---|---|
| ① | PoC のために用意 | Universal | HTTP-01 | 権威 DNS | CNAME 追加 |
| ② | 現行稼働中 | Universal | HTTP-01 | 現行 Web | URL 追加 |
| ③ | 現行稼働中 | Universal | DNS-01 | 権威 DNS | TXT 追加 |
デフォルトの DCV は HTTP-01
以下 ①②③ いずれかで Universal を Active 化
HTTP-01
① DNS CNAME RR 🔗
権威 DNS サーバーで FQDN の CNAME を新規作成
Route 53 の例
<FQDN>cdn.cloudflare.net で CNAME RR

正常に解決できることを確認
(Cloudflare の当該 DNS RR は Proxied)
dig www.oymk.click +short
www.oymk.click.cdn.cloudflare.net.
104.18.28.44
104.18.29.44
② HTTP URL 🔗
現行 Web サーバーに ACME URL を配置
S3 の例
Certificate validation request の URL を掘り
Certificate validation response のテキストを置く

現行 Web サーバーに ACME URL を追加

S3 の例
現行 Web サーバーにリクエストし、指定の Token が戻ることを確認
# HTTP
curl http://www.oymk.click/.well-known/acme-challenge/HnPGn9iquC2XvTJKUoR1Gzlw0v-0u06gernravkpcNVZmb7z8sAm61l4w2snd580
HnPGn9iquC2XvTJKUoR1Gzlw0v-0u06gernravkpcNVZmb7z8sAm61l4w2snd580.r54qAqCZSs4xyyeamMffaxyR1FWYVb5OvwUh8EcrhpI
DNS-01
③ DNS TXT RR 🔗
DCV 方式の変更
API 操作の準備(認可 Token の作成)
API 🔗
この API エンドポイントに必要な権限を確認
Accepted Permissions (at least one required)

SSL and Certificates Write を有効にした Token を作成
【ユーザー】API Tokens Create Token

Custom token Get started

Token name
Permissions Zone SSL and Certificates Edit
Continue to summary

Create token

Token をコピーして、次の操作に使用
テスト用 curl コマンドも表示される

Zone の証明書の一覧を確認する API 🔗
?status=all をつけ、すべてリストする
export TOKEN=<コピーしたToken>
export ZONE=<前に確認した Zone ID>
curl --location "https://api.cloudflare.com/client/v4/zones/$ZONE/ssl/certificate_packs/?status=all" \
--header "Authorization: Bearer $TOKEN" -s | jq '.result[]'
{
"id": "22cc8b25-af75-40c1-9c98-316f438a6e2f",
"type": "universal",
"hosts": [
"www.oymk.click"
],
"primary_certificate": "0",
"status": "pending_validation",
"certificates": [],
"created_on": "2025-10-13T01:54:14.495312Z",
"validity_days": 90,
"validation_method": "http",
"validation_records": [
{
"status": "pending",
"http_url": "http://www.oymk.click/.well-known/acme-challenge/ehoG9hBa_WU-yQiX0gPW1hvlQ_khV66ES6zMdoy-WvL8W0io1JnV_eOCFk_XHh_T",
"http_body": "ehoG9hBa_WU-yQiX0gPW1hvlQ_khV66ES6zMdoy-WvL8W0io1JnV_eOCFk_XHh_T.r54qAqCZSs4xyyeamMffaxyR1FWYVb5OvwUh8EcrhpI"
}
],
"certificate_authority": "google"
}
API
HTTP-01 から DNS-01 に変更
API 🔗
GET /zones/{zone_id}/ssl/verification
curl --location --request GET "https://api.cloudflare.com/client/v4/zones/$ZONE/ssl/verification?retry" \
--header "Authorization: Bearer $TOKEN"
validation_method が http
cert_pack_uuid をコピー

PATCH /zones/{zone_id}/ssl/verification/{certificate_pack_id}
validation_method を txt に変更
curl --location --request PATCH "https://api.cloudflare.com/client/v4/zones/$ZONE/ssl/verification/$CERTID" \
--header 'Content-Type: application/json' \
--header "Authoization: Bearer $TOKEN" \
--data-raw '{
"validation_method": "txt"
}'
text_name text_value をメモ

権威 DNS サーバー
TXT RR の追加
Route 53 の例

Active になったら TLS 接続確認
Active!
いずれも待っていると CA のバックオフスケジュールタイミングで Active 化 🔗
GUI

DCV を再開する場合は API で同じ validation_method を指定して PATCH 🔗
API
TLS 接続確認
TLS 接続と証明書の確認
<FQDN>.cdn.cloudflare.net への TLS 接続
openssl s_client -connect www.oymk.click.cdn.cloudflare.net:443 -servername www.oymk.click < /dev/null
Connecting to 104.18.29.44
CONNECTED(00000006)
depth=2 C=US, O=Google Trust Services LLC, CN=GTS Root R4
verify return:1
depth=1 C=US, O=Google Trust Services, CN=WE1
verify return:1
depth=0 CN=www.oymk.click
verify return:1
---
Certificate chain
0 s:CN=www.oymk.click
i:C=US, O=Google Trust Services, CN=WE1
a:PKEY: EC, (prime256v1); sigalg: ecdsa-with-SHA256
v:NotBefore: Oct 6 11:17:18 2025 GMT; NotAfter: Jan 4 12:17:14 2026 GMT
1 s:C=US, O=Google Trust Services, CN=WE1
i:C=US, O=Google Trust Services LLC, CN=GTS Root R4
a:PKEY: EC, (prime256v1); sigalg: ecdsa-with-SHA384
v:NotBefore: Dec 13 09:00:00 2023 GMT; NotAfter: Feb 20 14:00:00 2029 GMT
2 s:C=US, O=Google Trust Services LLC, CN=GTS Root R4
i:C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
a:PKEY: EC, (secp384r1); sigalg: sha256WithRSAEncryption
v:NotBefore: Nov 15 03:43:21 2023 GMT; NotAfter: Jan 28 00:00:42 2028 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
:
-----END CERTIFICATE-----
subject=CN=www.oymk.click
issuer=C=US, O=Google Trust Services, CN=WE1
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: ecdsa_secp256r1_sha256
Negotiated TLS1.3 group: X25519MLKEM768
---
SSL handshake has read 3903 bytes and written 1627 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Protocol: TLSv1.3
Server public key is 256 bit
This TLS version forbids renegotiation.
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
^C
Advanced 証明書の有効化 🔗
デフォルト指定 Certificate Hostnames (Zone APEX と Wildcard)で有効化
GUI
Cloudflare PoC 担当チームに Advanced certificate 有効化の依頼
You have used 0 out of 100 Advanced certificates.
➜ Advanced 証明書が有効になっている
Order Advanced Certificate

Certificate Authority

Certificate Hostnames ➜ デフォルトは Zone APEX と Wildcard
Certificate validation method ➜ Wildcard が入ると DCV は DNS TXT(DNS-01)のみ
Certificate Validity Period
Save

DCV 待ち 🔗
Certificate validation TXT name Certificate validation TXT value(x2)をメモ

API
GUI の代わりに API で確認の場合 🔗
txt_name txt_value をメモ(x2)
curl --location "https://api.cloudflare.com/client/v4/zones/$ZONE/ssl/certificate_packs/?status=all" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $TOKEN" -s | jq '.result[]|select(.type=="advanced")'
{
"id": "997ecca1-cc28-4a4f-8519-9da068397cb4",
"type": "advanced",
"hosts": [
"oymk.click",
"*.oymk.click"
],
"primary_certificate": "0",
"status": "pending_validation",
"certificates": [],
"created_on": "2025-10-12T11:15:17.748236Z",
"validity_days": 90,
"validation_method": "txt",
"validation_records": [
{
"status": "pending",
"txt_name": "_acme-challenge.oymk.click",
"txt_value": "O5Yywd9qW9y7yTfEwQMIOzqtAa00Tokur2mOU9tmw_Y"
},
{
"status": "pending",
"txt_name": "_acme-challenge.oymk.click",
"txt_value": "uZASKY8FcDxAHJkLSe3WsFFwO-9LAyj7uHmEgo5e_-s"
}
],
"dcv_delegation_records": [
{
"cname": "_acme-challenge.oymk.click",
"cname_target": "oymk.click.baf8bfbb3d8a330d.dcv.cloudflare.com"
}
],
"certificate_authority": "google"
}
DCV(DNS-01)
権威 DNS TXT(x2)設定完了
dig _acme-challenge.oymk.click txt +short
"O5Yywd9qW9y7yTfEwQMIOzqtAa00Tokur2mOU9tmw_Y"
"uZASKY8FcDxAHJkLSe3WsFFwO-9LAyj7uHmEgo5e_-s"
DCV 再開 🔗
curl --location -X PATCH "https://api.cloudflare.com/client/v4/zones/$ZONE/ssl/certificate_packs/$CERTID" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $TOKEN" \
--data-raw '{
"validation_method": "txt"
}' -s | jq '.'
Active!

DCV(DNS-01)Delegate DCV を使う
Delagete DCV を使うことで、DCV を Cloudflare に任せることが可能
DCV delegation for Partial zones

CNAME RR の入手
cname cname_target をメモ(x1)
curl --location "https://api.cloudflare.com/client/v4/zones/$ZONE/ssl/certificate_packs/?status=all" \
--header "Authorization: Bearer $TOKEN" -s | jq '.result[]|select(.certificate_authority|contains("let"))|.dcv_delegation_records'
[
{
"cname": "_acme-challenge.oymk.click",
"cname_target": "oymk.click.baf8bfbb3d8a330d.dcv.cloudflare.com"
}
]
権威 DNS サーバーで TXT と CNAME を差し替え


dig _acme-challenge.oymk.click txt @ns-535.awsdns-02.net. +norec +noal +an
; <<>> DiG 9.10.6 <<>> _acme-challenge.oymk.click txt @ns-535.awsdns-02.net. +norec +noal +an
;; global options: +cmd
_acme-challenge.oymk.click. 60 IN CNAME oymk.click.baf8bfbb3d8a330d.dcv.cloudflare.com.
dig _acme-challenge.oymk.click TXT +short
oymk.click.baf8bfbb3d8a330d.dcv.cloudflare.com.
この状態では Universal が優先 🔗
| FQDN | Type | www.oymk.click |
|---|---|---|
| oymk.click | Advanced | - |
| *.oymk.click | Advanced | - |
| www.oymk.click | Unversal | ✅️ |
Advanced が使われるようにする
2 つのパターン
Universal を Disable 🔗
| FQDN | Type | www.oymk.click |
|---|---|---|
| oymk.click | Advanced | - |
| *.oymk.click | Advanced | ✅️ |
GUI
Disable Universal SSL

I understood Confirm

Advanced のみ

FQDN 指定での追加
| FQDN | Type | www.oymk.click |
|---|---|---|
| oymk.click | Advanced | - |
| *.oymk.click | Advanced | - |
| www.oymk.click | Advanced | ✅️ |
| www.oymk.click | Unversal | - |
GUI
Order Advanced Certificate
Certificate hostnames FQDN のみ指定
Certificate validation method HTTP でテスト

Certificate validation request Certificate validation response(x2)をメモ

DCV(HTTP-01 の例)
FQDN(Non-wildcard)の場合 DNS-01、HTTP-01 どちらでも可
HTTP-01 の場合、Universal 同様
- DNS が Cloudflare に向き Proxy していれば Cloudflare が返すので配置不要
- 現行 Web サーバー稼働中の場合 ACME Token URL を配置
curl http://www.oymk.click/.well-known/acme-challenge/X6I696t7Zni-p5gwAciLCQ
X6I696t7Zni-p5gwAciLCQ.PEOY-NtnbUH5Y1FPAC5Dl6QUHSDzv5zF3SajokK1Zg0
curl http://www.oymk.click/.well-known/acme-challenge/cYcWtkY3rq7fuD_D4_Awlw
cYcWtkY3rq7fuD_D4_Awlw.x79ivA5u8mG8syNawpZ9o2VofCjAwIwF41w-QY86tu0
Active!

API
ssl.com で active になっている
curl --location "https://api.cloudflare.com/client/v4/zones/$ZONE/ssl/certificate_packs/?status=all" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $TOKEN" -s | jq '.result[]|select(.certificate_authority|contains("ssl"))'
{
"id": "4f05d848-a453-4d24-9c58-16800f9ec8db",
"type": "advanced",
"hosts": [
"www.oymk.click"
],
"primary_certificate": "001046cf-2a14-4c3a-9882-7f67cda88fb1",
"status": "active",
"certificates": [
{
"id": "001046cf-2a14-4c3a-9882-7f67cda88fb1",
"hosts": [
"www.oymk.click"
],
"issuer": "CLOUDFLAREINC",
"signature": "SHA256WithRSA",
"status": "active",
"bundle_method": "ubiquitous",
"zone_id": "59f0cf72f06cf4f21707d98a7902ae09",
"uploaded_on": "2025-10-12T12:12:50.439117Z",
"modified_on": "2025-10-12T12:12:36.369038Z",
"expires_on": "2026-01-10T12:01:20.000000Z",
"priority": null
},
{
"id": "c59e93b9-c77f-4925-a653-fcbaa6c64754",
"hosts": [
"www.oymk.click"
],
"issuer": "CLOUDFLAREINC",
"signature": "ECDSAWithSHA256",
"status": "active",
"bundle_method": "ubiquitous",
"zone_id": "59f0cf72f06cf4f21707d98a7902ae09",
"uploaded_on": "2025-10-12T12:12:50.439148Z",
"modified_on": "2025-10-12T12:12:36.369038Z",
"expires_on": "2026-01-10T12:01:21.000000Z",
"priority": null
}
],
"created_on": "2025-10-12T12:01:18.317120Z",
"validity_days": 90,
"validation_method": "http",
"certificate_authority": "ssl_com"
}
TLS 疎通確認
SSL.com が見れる
openssl s_client -connect www.oymk.click.cdn.cloudflare.net:443 -servername www.oymk.click < /dev/null |grep -i notb
Connecting to 104.18.28.44
depth=3 C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=AAA Certificate Services
verify return:1
depth=2 C=US, O=SSL Corporation, CN=SSL.com TLS Transit ECC CA R2
verify return:1
depth=1 C=US, O=CLOUDFLARE, INC., CN=Cloudflare TLS Issuing ECC CA 1
verify return:1
depth=0 CN=www.oymk.click
verify return:1
DONE
v:NotBefore: Oct 12 12:02:33 2025 GMT; NotAfter: Jan 10 12:01:21 2026 GMT
v:NotBefore: Oct 31 17:17:49 2023 GMT; NotAfter: Oct 28 17:17:48 2033 GMT
v:NotBefore: Jun 21 00:00:00 2024 GMT; NotAfter: Dec 31 23:59:59 2028 GMT
Custom 証明書の持ち込み 🔗
OV や EV が必要な場合など 🔗
Custom 証明書の例
セルフサイン証明書の例(もちろん真っ当な証明書も同様に登録可能)
HTTP プロキシー疎通確認
FQDN の IP が Cloudflare を向いている場合
DNS が Cloudflare の IP を示すので、通常通りアクセス
Cloudflare にリクエスト送信
curl https://www.oymk.click/index.html
<!doctype html>
<html lang="en">
<head>
</head>
<body>
<h1>Demo</h1>
</body>
</html>
dig www.oymk.click +short
www.oymk.click.cdn.cloudflare.net.
104.18.28.44
104.18.29.44
curl "https://www.oymk.click/index.html" -v 2>&1 |grep "server:"
< server: cloudflare
curl "https://www.oymk.click/cdn-cgi/trace" -s| head -2
fl=408f295
h=www.oymk.click
FQDN の IP が Cloudflare を向いていない場合
テスト端末側で FQDN を Cloudflare の IPv4・IPv6 に向ける
(hosts ファイル や dnsmasq リゾルバ、コマンドのオプションなどで)
Cloudflare にリクエスト送信
dig www.oymk.click.cdn.cloudflare.net A +short
104.18.28.44
104.18.29.44
dig www.oymk.click.cdn.cloudflare.net AAAA +short
2606:4700::6812:1c2c
2606:4700::6812:1d2c
curl https://www.oymk.click/index.html --resolve www.oymk.click:443:104.18.29.44
<!doctype html>
<html lang="en">
<head>
</head>
<body>
<h1>Demo</h1>
</body>
</html>
curl https://www.oymk.click/index.html --resolve www.oymk.click:443:'[2606:4700::6812:1c2c]'
<!doctype html>
<html lang="en">
<head>
</head>
<body>
<h1>Demo</h1>
</body>
</html>
Cloudflare とオリジンサーバーの間
疎通ができない場合、Cloudflare とオリジンサーバー間の接続も確認
(後述の Instant logs も活用可能)
観測
通信確認に使えるログや分析機能
ログ 🔗
Instant Logs 🔗
通信しながら HTTP リクエストログを見る
GUI
【ゾーン】Analytics & logs Instant Logs Start streaming

脇でリクエストすると、ログが流れ、クリックすると詳細を確認可能
Logpush 🔗
各種ログをクラウドストレージや SIEM に送る
GUI(R2 の例)
【ゾーン】Analytics & logs Logpush
Create a Logpush job

Select Destination R2 Object Storage Automatic

その他の宛先

Create a Logpush job Dataset HTTP requests

R2 Logpush log created Go to R2 bucket
【アカウント】R2 object storage Overview
自動作成された R2 Bucket 名 cloudflare-managed-*を確認

HTTP リクエストのログが R2 に Logpush される

Automatic で R2 Write に利用される R2 Token
【アカウント】Manage Account Account API tokens
ログ確認(R2 の例)
rclone lsf r2:cloudflare-managed-1bf3af5d/20251010/
20251010T113640Z_20251010T113735Z_3c9e0772.log.gz
test.txt.gz
rclone cat r2:cloudflare-managed-1bf3af5d/20251010/20251010T113640Z_20251010T113735Z_3c9e0772.log.gz --s3-decompress | jq .
{
"CacheCacheStatus": "dynamic",
"CacheReserveUsed": false,
"CacheResponseBytes": 2238,
"CacheResponseStatus": 304,
"CacheTieredFill": false,
"ClientASN": 13335,
"ClientCity": "San Francisco",
"ClientCountry": "us",
"ClientDeviceType": "desktop",
:
Log Explorer 🔗
Cloudflare 上でログを検索できる便利な機能
GUI
Cloudflare PoC 担当チームに Log Exploer 有効化の依頼
【ゾーン】Log Explorer Log search Add a dataset

Manage datasets Add detaset

Select a dataset HTTP requests Add

しばらくリクエストを流す
クエリーと表示をデフォルトのフィルターで実施
Log search Run query

Columns 取得項目を絞る

Custom SQL で SELECT 文を直接編集
Show/Hide columns で表示項目を一括制御
Save query でクエリーを保存

Queries 過去のクエリー履歴も確認可能
可視化・分析 🔗
プロキシー
ゾーン(ドメイン)の概況(一日まつ)🔗
GUI
【ゾーン】Overview

HTTP リクエスト統計を多角的に分析 🔗
GUI
【ゾーン】Analytics & Logs HTTP Traffic

セキュリティ
HTTP リクエスト統計をセキュリティ観点で分析 🔗
GUI
【ゾーン】Security Analytics Traffic Traffic analysis


Top statistics リクエスト統計上位分析

Sampled logs 統計元のログデータ

View related security events を見ると処理したセキュリティルールが見れる


セキュリティルールのイベントを発火したリクエストだけをみる 🔗
GUI
【ゾーン】Security Analytics Events

パフォーマンス
Caching 🔗
キャッシュ状況の確認
GUI
【ゾーン】Caching Overview


Synthetic monitoring (beta) 🔗
Web サイトのパフォーマンスを Cloudflare から計測
GUI
【ゾーン】Speed Synthetic monitoring (beta)
Browser tests PoC の URL を指定 Run test once

結果

Cloudflare でプロキシーしていない場合
Recommendation に Proxy your site through Cloudflare と出る

Cloudflare でプロキシーしている場合
Recommendation に改善に使えそうな機能が表示される

再開
Run test now

履歴
View results

View history report

History report

Real user monitoring 🔗
ブラウザーからパフォーマンス情報を収集(Javascript が注入される点など確認のうえ、設定)
GUI
【ゾーン】Speed Real user monitoring
Enable Globally

十分なリクエスト量、かつ、ブラウザー側でJavascript の実行が必要(curl だけ、とかでは統計が取れない)

無効化は Manage RUM settings

【アカウント】Analytics & Logs Web analytics Manage site

Disable Update

Observatory (Beta) 🔗
一目でパフォーマンスの現状と改善点がわかる場所、を目指していそう
GUI
今後はこれが起点となって進化するのかも
【ゾーン】Speed Observatory (Beta)
Summary All suggestions

設定チェック
Trace(Beta)🔗
設定したトラフィック制御 Rule がリクエストにどう働くかをシミュレート、可視化
GUI
Cloudflare に DNS が向いていなくても確認可能
【ゾーン】Rules Trace (beta)
URL

Send Trace

結果
Matched が適用対象の Rule
API
curl \
--url https://api.cloudflare.com/client/v4/accounts/$ACCOUNT/request-tracer/tracer \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $CF_AUTH_TOKEN" \
--data '{"url":"https://www.oymk.click/index.html","method":"GET"}' -s | jq '.result.trace[]|select(.matched==true)'
{
"step_name": "http_request_firewall_managed",
"type": "phase",
"matched": true,
"public_name": "WAF Managed Rules",
"trace": [
{
"step_name": "0fea3f5a773d4202baeb89c705a2e74a",
"type": "ruleset",
"matched": true,
"name": "root",
"kind": "root",
"trace": [
{
"step_name": "67199769b2e44c178f90271943e7ee16",
"type": "rule",
"matched": true,
"action_parameter": {
"id": "efb7b8c949ac4650a09736fc376e9aee",
"version": "latest"
},
"expression": "true",
"description": "新しい管理",
"action": "execute",
"trace": [
{
"step_name": "efb7b8c949ac4650a09736fc376e9aee",
"type": "ruleset",
"matched": true,
"description": "Created by the Cloudflare security team, this ruleset is designed to provide fast and effective protection for all your applications. It is frequently updated to cover new vulnerabilities and reduce false positives.",
"name": "Cloudflare Managed Ruleset",
"kind": "managed"
}
]
}
]
}
]
}
{
"step_name": "http_request_sbfm",
"type": "phase",
"matched": true,
"public_name": "Super Bot Fight Mode",
"trace": [
{
"step_name": "73b7a8a52de44f9db074e4138a3e2ab1",
"type": "ruleset",
"matched": true,
"name": "zone",
"kind": "zone",
"trace": [
{
"step_name": "bbfd94974c0d43fb96c884e5ccb5056d",
"type": "rule",
"matched": true,
"action_parameter": {
"id": "3e677e63d4e9479382576f3fa66279e7",
"version": "latest",
"overrides": {
"rules": [
{
"id": "7bd01eeccb6b420fa0be30264603a5cb",
"action": "block",
"enabled": true
}
]
}
},
"expression": "true",
"action": "execute"
}
]
}
]
}
役立ち集
ダッシュボード 🔗
- 今触っている項目の Dev docs を見る
GUI
各項目に Documentation のリンクあり

Dev docs が表示され、Go to full documentaiotn することも可能

- 今触っている項目の Help を見る
GUI
Help

- 今触っている項目の API を見る
GUI
API

ドキュメント(with 生成 AI) 🔗
- Dev docs
-
Docs AI(Beta)
生成 AI の力を直接借りて、知りたい情報に早くアクセス
Cloudflare MCP Servers 🔗
- Documentation MCP server Dev docs を言葉で
Gemini の例
”Cloudflare の Universal SSL と Advanced の証明書の違いをまとめて”
➜ search_cloudflare_documentation (cloudflare MCP Server) {"query":"Cloudflare Universal SSL vs Advanced Certificates"}

結果

- GraphQL MCP server GrahpQL を言葉で
Claude の例
ゾーンのビジター数をグラフにして
コードで管理 🔗
Cloudflare はプログラマブルなプラットフォームなので
API
API docs のサンプルコードは各言語で見れる

API Token はユーザーレベルとアカウントレベルの二種
【ユーザー】My profile API Tokens

【アカウント】Manage Account Account API tokens

IaC ツール
ライブラリ
おわりに
以上。
Partial(CNAME)セットアップで疎通できたら、準備完了。
これから PoC の始まり。
セキュリティ、パフォーマンスなど、各成功要件の達成を目指して進める。
Discussion