Open2

Cloudflareのtunnelで利用するドメインを変更する

HoraiHorai

同ページ内Prerequisitionは実施済みで、1回別ドメインで利用したことがあったものの、再度別ドメインで利用しようとした時に、ドメイン切り替えて使う方法が分からなかったのでメモ

ドキュメント

https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/#set-up-a-tunnel-locally-cli-setup

cloudflared tunnel login でログイン済みなので失敗する

cloudflared tunnel loginしようとすると、既にログインしてるので上書きできない、ファイルを消すか移動しろと出る。

$ cloudflared tunnel login 
You have an existing certificate at /Users/{username}/.cloudflared/cert.pem which login would overwrite.
If this is intentional, please move or delete that file then run this command again.

対策

言われたとおり消す。

rm /Users/{username}/.cloudflared/cert.pem

他の対応策

cloudflared コマンドのオプションとして --origincert オプションでcertの場所を指定できるようなので、利用するドメインごとに切り替えれば良さそう。

--origincert value Path to the certificate generated for your origin when you run cloudflared login. (default: "/Users/{username}/.cloudflared/cert.pem") [$TUNNEL_ORIGIN_CERT]

ただ、頻繁に切り替えるわけでもないので消してログインする方が早そうだと思ったので今回は消した。

ドキュメント内のsubdomainについて

loginしてドメインを指定済みの想定なので test.example.com だとしたらsubdomainは test になる (test.example.comではなく)。

(久しぶりに利用して別ドメインで利用していたことを忘れて分からなかった。)

HoraiHorai

固定ドメインでlocalhostをhostするために利用したコマンド

前提: local.example.com で localhost:3000を配信する場合
(tunnel名は example-name とします。プロジェクト名とか、そのままドメインのhost名にするのが覚えやすそう)

ログインする

$ cloudflared tunnel login

tunnelを作成

$ cloudflared tunnel create example-name

tunnel用のCNAMEを追加

$ cloudflared tunnel route dns example-name local

ローカルホストの配信実行

cloudflared tunnel run --url localhost:3000 example-name