Lucky SSL/ACME 证书详解:给内网服务也配上小绿锁

JackcatLucky1 月 前

前两篇我们搞定了一台容器搞定 DDNS 和反向代理,但有个细节一直没细说:为什么访问家里的服务时,浏览器总弹”不安全”警告?答案很简单——你还在用 HTTP 明文传输。本文专门把 Lucky 的 SSL/ACME 证书这一块讲透,让内网服务也戴上”小绿锁”。

一、为什么一定要上 HTTPS

HTTP 是明文协议。一旦你通过公网或内网穿透访问,账号密码、Cookie 全在网络上”裸奔”,谁都能抓包看到。除此之外还有两个现实痛点:

  • 浏览器不友好:Chrome 等会把所有 HTTP 站点标成”不安全”,有些功能直接禁用;
  • 安全上下文要求:PWA 安装、WebRTC、地理定位等浏览器 API 都强制要求 HTTPS 环境。

反向代理 + HTTPS 是目前相对最完善的家庭 NAS 公网访问方案,既能建立加密通道,又能用域名统一入口。

二、Lucky 的证书方案:ACME + Let’s Encrypt

Lucky 内置了 ACME 客户端,可以直接向 Let’s Encrypt 申请免费证书。标准证书有效期 90 天,但 Lucky 会在到期前自动续签,无需人工干预——这也是它相比手动续期最舒服的地方。

三、前置:先配置 DNS 服务商

因为内网机器没法做 HTTP-01 验证,证书只能走 DNS-01 验证。所以第一步是在 Lucky 里添加一个 DNS 服务商配置:

  • 用 Cloudflare 的话,去后台创建一个 API Token,权限只给 Zone.DNS 的 Edit 即可,别用 Global API Key(权限太大,泄露就全完蛋);
  • 用阿里云 / 腾讯云等国内 DNS,需要填 AccessKey ID 和 Secret,且域名得先完成 ICP 备案才能签发;
  • Cloudflare 的好处是不强制备案,省心。

四、申请证书的步骤

  1. 左侧菜单 安全管理 → SSL/TLS 证书 → 添加证书
  2. 添加方式选 ACME,证书颁发机构选 Let’s Encrypt
  3. 验证方式选你配置的 DNS 服务商;
  4. 域名列表填两行:主域名 example.com 和泛域名 *.example.com(泛域名证书一个顶所有子域名);
  5. 电子邮箱填常用邮箱(到期提醒用),算法默认 RSA2048;
  6. 如果你的公网是 IPv4,高级选项里勾选「DNS 查询强制 IPv4」和「DNS 查询仅使用 TCP 通道」;
  7. 点击添加,等 1~3 分钟,状态变成”成功”即完成。

五、几个必踩的坑

  • DNS 传播超时:第一次失败多半是 DNS 没传播完,把”DNS 传播等待时间”调到 120 秒再试;
  • Let’s Encrypt 频率限制:同一域名每周最多申请 5 次,别瞎点,先检查配置再申请;
  • 别手贱动 _acme-challenge:Lucky 会自动加/删这条 TXT 记录,你之前手动加过的记得删掉,否则冲突;
  • 国内 DNS 接口变动:老教程的填法可能失效,Cloudflare 相对最稳。

六、自动续期

Lucky 默认提前 30 天续期,建议改成提前 45 天更保险。续期成功后会自动更新到反向代理规则里,不用手动替换证书。跑大半年基本上零维护,偶尔收到续期成功通知看一眼就行。

七、把证书部署到反向代理

  1. Web 服务 → 添加 Web 规则,操作模式简易模式,监听类型按你的 IP 类型勾选 tcp4/tcp6;
  2. 监听端口:家里 443 没被封就用 443,被封了换 8443 / 9443 之类,访问时域名后加端口;
  3. 务必打开 TLS 开关,并在规则里选择刚才申请的证书;
  4. 打开「防火墙自动放行」,省得手动放行端口;
  5. 在子规则里把前端域名(如 nas.example.com)绑定到后端内网地址(如 http://192.168.1.100:9999)。

八、HTTP 自动跳转 HTTPS

只输域名时浏览器可能默认走 HTTP 导致打不开。解决办法:再建一条 Web 规则(定制模式),TLS 关闭,默认子规则选「重定向」,目标填 https://{host}:{port},打开”万事大吉”自动加请求头。这样输入域名就自动跳 HTTPS。

九、安全最佳实践

  • API Token / AccessKey 最小权限,且绝不在群里截图泄露;
  • 改掉 Lucky 默认密码(666),设独立安全入口;
  • 对没有自身登录页的服务(如某些管理面板),在子规则开 BasicAuth 多一道认证。

到这一篇,DDNS、反向代理、内网穿透、SSL 证书四块就齐了——一台 Lucky 容器,足以撑起整套家庭服务器的安全公网访问。

发布评论

相关文章