cloudflareでドメイン取ったのでcloudflareにデプロイする

作ったWebサービス置き場としてasweb.appというドメインを取った。
本格的な引っ越しは後からするが、とりあえずトップページだけ作っておく。

ドキュメントを読む。
このガイドでは、以下を展開する方法について説明します。
Edge ランタイムを使用するフルスタック Next.js プロジェクト。
静的エクスポートを使用した静的サイト Next.js プロジェクト。
Edge ランタイムを試したい気持ちもあるが、それはサブドメインでやる。
トップページは静的なサイトでいいや。

nextのプロジェクトを作る
npm create cloudflare@latest aswebapp -- --framework=next
とりあえず全部デフォルトでいいや
✔ Would you like to use TypeScript? … No / Yes
✔ Would you like to use ESLint? … No / Yes
✔ Would you like to use Tailwind CSS? … No / Yes
✔ Would you like to use `src/` directory? … No / Yes
✔ Would you like to use App Router? (recommended) … No / Yes
✔ Would you like to customize the default import alias? … No / Yes
Creating a new Next.js app in /Users/gabill/src/GitHub/aswebapp.
まだGithubにもあげてないのにhttps://aswebapp.pages.dev/
にデプロイできてしまった。これはお手軽過ぎる。

と思ったらなんかエラー出てた。
├ Waiting for DNS to propagate
│ DNS propagation complete.
│
┌ Waiting for deployment to become available (277s) ..
Error: 005366DA01000000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:../deps/openssl/openssl/ssl/record/rec_layer_s3.c:1605:SSL alert number 40
npm ERR! code 1
npm ERR! path /Users/gabill/src/GitHub
npm ERR! command failed
npm ERR! command sh -c create-cloudflare aswebapp --framework=next
npm ERR! A complete log of this run can be found in: /Users/gabill/.npm/_logs/2023-11-04T06_50_21_566Z-debug-0.log

2023-11-04T06_50_21_566Z-debug-0.log
が見つからない…
いったん進むか

package.jsonを覗いてみる
"pages:build": "npx @cloudflare/next-on-pages",
"pages:deploy": "npm run pages:build && wrangler pages deploy .vercel/output/static",
"pages:watch": "npx @cloudflare/next-on-pages --watch",
"pages:dev": "npx wrangler pages dev .vercel/output/static --compatibility-date=2023-10-30 --compatibility-flag=nodejs_compat"
wranglerとはなんぞや。ChatGPTに聞いてみた。
Cloud flareのツールらしい。
deployはともかくpages:devでも必要なのかな、と思ったけど、edgeの環境を再現してくれるらしい。なるほど便利。

とはいえデプロイコマンドをいちいち叩くのは面倒。
GithubにPushしたら勝手にデプロイされて欲しい。
うーん、新たにPagesを作る際のGit連携方法は書いてるけど、既存の設定を変更する方法が見当たらない。

あーedgeランタイム向けのプロジェクト構築してた。
やり直そう。

静的サイトでやりなおし
npx create-next-app --example with-static-export homeaswebapp
なるほどstaticなWebサイト作る場合はデプロイコマンドとかは付いてこないのか。
"dev": "next",
"build": "next build",
"start": "serve out"
いや、よく見ると普通のcreate-next-appか。なら当然か。

デプロイ
Pages → Gitに接続
フレームワーク プリセットはNextの静的エクスポート。
はいできた。

カスタムドメイン
なんとドメイン取得済みならこんな簡単にいけるのか。

あれ?
アクセスできない。
時間かかるのかな、と思ったりもしたけれど、pages.dev経由でもアクセスできなくなってしまった。

ERR_SSL_VERSION_OR_CIPHER_MISMATCH
で検索するとこのページが。

フルセットアップのドメインの場合、ドメインは、ドメインのアクティブ化から15 分から 24 時間以内にユニバーサル SSL 証明書を自動的に受信します。。
SSL/TLS→エッジ証明書を見ると検証保留中のステータスが
ユニバーサル証明書の発行には最大 24 時間かかる場合があるため、証明書のステータスを監視して待ってください。
待つしか無いか。

アクションは必要ありませんの言葉を信じる。

4時間待ったらpages.devの方は回復した。
独自ドメインのほうはまだ

独自ドメインの方も閲覧できるようになった。解決。

digの結果のbefore/after
反映される前
% dig CNAME asweb.app
; <<>> DiG 9.10.6 <<>> CNAME asweb.app
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 5905
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;asweb.app. IN CNAME
;; Query time: 879 msec
;; SERVER: 218.40.229.16#53(218.40.229.16)
;; WHEN: Sat Nov 04 21:14:14 JST 2023
;; MSG SIZE rcvd: 38
反映された後
% dig CNAME asweb.app
; <<>> DiG 9.10.6 <<>> CNAME asweb.app
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59492
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;asweb.app. IN CNAME
;; AUTHORITY SECTION:
asweb.app. 300 IN SOA etta.ns.cloudflare.com. dns.cloudflare.com. 2324625910 10000 2400 604800 1800
;; Query time: 50 msec
;; SERVER: 218.40.229.40#53(218.40.229.40)
;; WHEN: Sun Nov 05 13:15:38 JST 2023
;; MSG SIZE rcvd: 100

TXTレコードのbefore/after
before
% dig TXT asweb.app
; <<>> DiG 9.10.6 <<>> TXT asweb.app
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 56489
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;asweb.app. IN TXT
;; Query time: 944 msec
;; SERVER: 218.40.229.16#53(218.40.229.16)
;; WHEN: Sat Nov 04 17:40:48 JST 2023
;; MSG SIZE rcvd: 38
after
% dig TXT asweb.app
; <<>> DiG 9.10.6 <<>> TXT asweb.app
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15747
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;asweb.app. IN TXT
;; AUTHORITY SECTION:
asweb.app. 300 IN SOA etta.ns.cloudflare.com. dns.cloudflare.com. 2324625910 10000 2400 604800 1800
;; Query time: 141 msec
;; SERVER: 218.40.229.40#53(218.40.229.40)
;; WHEN: Sun Nov 05 13:17:53 JST 2023
;; MSG SIZE rcvd: 100

反映に時間がかかると「本当に自分の操作は正しかったのか?他にもやらないといけない操作があったのでは?」と不安になるなぁ。