http://127.0.0.1:18080/api/status 已经成功之后,再接域名。推荐顺序:先 DNS 到源站,再 HTTP 反代,再 certbot,最后才考虑 Cloudflare 橙色云。
推荐顺序
1
Cloudflare 添加 A 记录
主机名
infisical,类型 A,内容填服务器公网 IP(文档示例 203.0.113.10)。代理状态先保持 DNS only(灰云)。2
源站 Nginx 做 HTTP 反代
把
infisical.example.com 转到 http://127.0.0.1:18080。先让 ACME 挑战和浏览器都能打到源站 80。3
certbot 申请证书并开启跳转
使用
certbot --nginx,让它改站点配置、装证书、把 HTTP 重定向到 HTTPS。4
验证 HTTPS
curl 证书和 /api/status,并把 SITE_URL 改成 https://infisical.example.com 后重启 backend。5
需要时再开 Cloudflare 代理
源站 HTTPS 稳定后,再切橙色云,SSL 模式用
Full (strict)。为什么用系统 Nginx,而不是 1Panel 网站模块
80 端口冲突时,先查谁占用,再决定改造路径。不要看到「80 被占用」就默认是面板、更不要停掉正在干活的入口去换另一套。ss显示 80 属于系统级nginx进程。- 机器上可能同时装着 1Panel,但 监听 80 的是 systemd 管的 Nginx。
- 因此把站点加进
/etc/nginx/sites-available/,复用现有入口。 - 停掉系统 Nginx、改走 1Panel 网站模块,会把已经在 80/443 上的其它站点一起带走,风险更大。
ss / lsof 为准。
Nginx 反向代理
完整文件:notes/infisical/examples/infisical.example.com.conf。
infisical.example.com.conf
启用:
sites-available / sites-enabled。若发行版只用 conf.d/,把文件放进 /etc/nginx/conf.d/ 再 nginx -t。
curl -sS -H 'Host: infisical.example.com' http://127.0.0.1/api/status 成功,说明 HTTP 反代已经打到 Infisical。HTTPS 与 certbot
先完成 HTTP 反代,再申请证书。Let’s Encrypt HTTP-01 要在 80 端口用指定路径证明你控制这个域名。Nginx 还没按域名反代时,certbot 即使跑起来,校验也可能打到默认站点。 本次用certbot --nginx,而不是 --standalone:standalone 会自己抢 80,和系统 Nginx 冲突;--nginx 会识别现有 server 块、写入证书路径、按 --redirect 加 443 和跳转。
续期:
301/308 到 HTTPS;证书 subject 是 infisical.example.com;/api/status 在 HTTPS 上成功。
然后把 .env 的 SITE_URL 改成正式地址并重启:
SITE_URL 时,页面可能仍能打开,但登录跳转、回调、复制出来的链接会指向旧的 http://127.0.0.1:18080。
Cloudflare 怎么用
Cloudflare 负责 DNS,以及可选的 代理(橙色云)。它不能替代源站 HTTPS。灰云阶段,浏览器直连源站 80/443,certbot 和openssl s_client 看到的就是源站证书,排障最短。
为什么要源站自己有正确证书:
- Flexible 模式是浏览器到 Cloudflare 走 HTTPS、Cloudflare 到源站走 HTTP。源站明文、且 Infisical 看到的
X-Forwarded-Proto容易错。 - Full(非 strict)不校验源站证书,过期或自签也能通,故障会拖到用户侧才暴露。
- Full (strict) 要求源站呈现可信证书,和 certbot 签发的 Let’s Encrypt 证书匹配。
curl https://infisical.example.com/api/status 仍成功,再打开代理。