SSL/HTTPS 配置
生产环境必须使用 HTTPS。本篇介绍几种常见的 SSL/TLS 配置方式。
方案一:反向代理终止 TLS(推荐)
在链盒前面部署 Nginx 或 Caddy,由反向代理处理 HTTPS,链盒本身只跑 HTTP。 这是最常见、最易维护的方式。
用 Caddy(自动证书)
Caddy 会自动申请并续期 Let's Encrypt 证书,零维护:
example.com {
reverse_proxy linkoo:3000
}前提是 80/443 端口对公网开放(用于 ACME 验证)。
用 Nginx(手动证书)
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/ssl/linkoo/fullchain.pem;
ssl_certificate_key /etc/ssl/linkoo/privkey.pem;
location / {
proxy_pass http://linkoo:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}方案二:云负载均衡 / CDN
用阿里云 SLB、AWS ALB 或 Cloudflare 等,在云端终止 TLS。 链盒只对负载均衡器暴露 HTTP,证书在云端管理。 注意配置 X-Forwarded-Proto 头,让链盒正确识别原始协议。
HTTP 强制跳转 HTTPS
在反向代理层把所有 HTTP 请求 301 跳转到 HTTPS:
# Nginx
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}关于 HSTS:在确认证书稳定续期后再启用 HSTS(Strict-Transport-Security)。 若证书中断时 HSTS 已生效,浏览器会拒绝连接且难以恢复。建议运行稳定 1-2 周后再加。
Webhook 与 HTTPS
配置 HTTPS 后,更新 AP_FRONTEND_URL 为https://your-domain.com。Webhook 触发器依赖此前端地址生成回调 URL, 必须与实际对外域名一致。
证书续期
- Caddy:自动续期,无需操作
- certbot + Nginx:配置 cron 或 systemd timer 定期跑
certbot renew - 云托管:由云服务商自动续期