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-*请求头。
方式二:server 自身终止 TLS
Section titled “方式二:server 自身终止 TLS”准备 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 的用户可读。