安装部署

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_URLhttps://your-domain.com。Webhook 触发器依赖此前端地址生成回调 URL, 必须与实际对外域名一致。

证书续期

  • Caddy:自动续期,无需操作
  • certbot + Nginx:配置 cron 或 systemd timer 定期跑 certbot renew
  • 云托管:由云服务商自动续期