Open6
Cloudflare Tunnelの環境構築メモ
概要
- localhostの環境を、URLで一般に公開したい
- 開発中に、例えばモバイルアプリのビルドが参照するURLをローカルにするなど。
前準備
- Cloudflareにアカウントを作成する
- (持っていなければ)ドメインを購入する。Cloudflareからすぐに購入できる
環境構築とログイン
- Macなら
brew install cloudflared
- ログイン
- ブラウザが立ち上がる
- ログインに成功すると、証明書が
~/.cloudflared/cert.pem
に入る模様。
cloudflared login
Tunnelの作成
- Tunnelを作成する。
> cloudflared tunnel create tunnel-test
Tunnel credentials written to /Users/name/.cloudflared/xxxxxxxxxxxxxxxxxxxxxxxxx.json. cloudflared chose this file based on where your origin certificate was found. Keep this file secret. To revoke these credentials, delete the tunnel.
Created tunnel tunnel-test with id xxxxxxxxxxxxxxxxxxxxxxxxx
- 設定ファイルを作成
touch ~/.cloudflared/config.yaml
サブドメイン無しで設定
- ymlファイルへの設定
~/.cloudflared/config.yaml
url: http://localhost:7001
tunnel: xxxxxxxxxxxxxxxxxxxxxxxxx
credentials-file: /Users/name/.cloudflared/xxxxxxxxxxxxxxxxxxxxxxxxx.json
- CNAME recordの追加
> cloudflared tunnel route dns xxxxxxxxxxxxxxxxxxxxxxxxx testdomain.net
2024-03-30T05:52:18Z INF Added CNAME testdomain.net which will route to this tunnel tunnelID=xxxxxxxxxxxxxxxxxxxxxxxxx
- トンネルの確立
cloudflared tunnel run
開発環境にアクセスできるように設定
- 例えばRailsを利用している場合には、development.rbの最後に以下のように記述
config.hosts << 'testdomain.net'
サブドメインを利用する設定
- ymlファイルの設定
~/.cloudflared/config.yaml
tunnel: xxxxxxxxxxxxxxxxxxxxxxxxx
credentials-file: /Users/name/.cloudflared/xxxxxxxxxxxxxxxxxxxxxxxxx.json
ingress:
- hostname: sub.testdomain.net
service: http://localhost:7001
- service: http_status:404
- dnsの設定
- なんどかうまくいかなかったため、重複して設定したり設定を消したりした。以下のどちらでうまくいったかは不明。
- cloudflareの管理画面から、DNSの設定を削除したりしつつ。。。
> cloudflared tunnel route dns xxxxxxxxxxxxxxxxxxxxxxxxx sub
または、
> cloudflared tunnel route dns xxxxxxxxxxxxxxxxxxxxxxxxx sub.testdomain.net
- トンネルの確立
cloudflared tunnel run