20240211202623 Raspi4 Cloudflare tunnel経由でhttpsサーバーを公開する

raspicloudflareserver

前提となる作業

WEBサーバーの設定

raspiのwebサーバーは80番(http)で動かして、cloudflareでhttps化してる。

作った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

cf.