Skip to content

TLS 与域名

英文翻译待补,当前显示简体中文。 / English translation pending — showing Simplified Chinese.

对外提供服务的 server 应当走 HTTPS。真遇支持两种方式:由 server 自身终止 TLS,或交由反向代理终止 TLS(推荐,证书续期更省心)。

无论哪种方式,都要把 public_endpoint 设为对外可访问的完整地址,例如 https://server.example.com ——它决定了邀请链接与目录解析指向哪里。

方式一:反向代理终止 TLS(推荐)

Section titled “方式一:反向代理终止 TLS(推荐)”

让 server 监听本机回环或内网地址,由反向代理(如 Caddy、Nginx)对外提供 HTTPS 并转发到 server。

server.toml:

listen = "127.0.0.1:8443"
public_endpoint = "https://server.example.com"

Caddy 示例(/etc/caddy/Caddyfile,自动申请与续期证书):

server.example.com {
reverse_proxy 127.0.0.1:8443
}

Nginx 示例:

server {
listen 443 ssl;
server_name server.example.com;
ssl_certificate /etc/letsencrypt/live/server.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/server.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8443;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

反向代理需放行请求体与 WebSocket 转发(客户端可能使用推送通道),保留 X-Gather-* 请求头。

准备 PEM 格式的证书与私钥,在配置中同时提供:

listen = "0.0.0.0:443"
public_endpoint = "https://server.example.com"
[tls]
cert = "/etc/gather/tls/cert.pem"
key = "/etc/gather/tls/key.pem"
  • 证书与私钥成对出现才启用 TLS;只配其一会告警并忽略。
  • 也可用环境变量 GATHER_TLS_CERT + GATHER_TLS_KEY 覆盖。
  • 证书可由 Let’s Encrypt(certbot)等签发;注意续期后需重载 / 重启 server。
  • 对外服务时,listen 不应是回环地址(除非前面有反向代理),并确保防火墙放行对应端口。
  • public_endpoint 必须与浏览器 / App 实际访问的地址一致(协议、主机、端口),否则邀请链接与解析会指向错误地址。
  • 证书与私钥文件应仅对运行 server 的用户可读。