20240211202623 Raspi4 Cloudflare tunnel経由でhttpsサーバーを公開する
前提となる作業
WEBサーバーの設定
raspiのwebサーバーは80番(http)で動かして、cloudflareでhttps化してる。
- raspi4でnginxを設定する で、WEBサーバー(nginx)を動かしておく。
作ったWEBサーバーをcloudflareのトンネルに登録
cloudflare@saipi4$ vim ~/.cloudflared/config.yaml
で、中身はこんな感じ。
url: http://localhost
tunnel: ******
credentials-file: /var/lib/cloudflare/.cloudflared/******.json
**** の所はトンネルを作ったときの token(or UUID or TunnelID). cloudflare トンネルのtoken(private)
cloudflare@saipi4:~ $ cloudflared tunnel route dns ***** notes.kinoshita-lab.org
2024-02-12T10:20:56Z INF Added CNAME notes.kinoshita-lab.org which will route to this tunnel tunnelID=****
cloudflare@saipi4:~ $ cloudflared tunnel --config ~/.cloudflared/config.yaml run
これでうまくいったら、 https://notes.kinoshita-lab.org にアクセスすると見える。
service化
うまくいっていたらserviceとして登録。
cloudflare@saipi4:~ $ vim sudo vim /etc/systemd/system/cloudflared.service
中身は
[Unit]
Description=cloudflared
After=network.target
[Service]
TimeoutStartSec=0
Type=notify
User=cloudflare
ExecStart=/usr/bin/cloudflared tunnel --config /var/lib/cloudflare/.cloudflared/config.yaml run
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
$ sudo systemctl daemon-reload
$ sudo systemctl enable cloudflared
$ sudo systemctl start cloudflared
$ sudo systemctl status cloudflared