在 FastPanel 中使用 Auto SSL
FastPanel 只能从 Let's Encrypt 签发免费证书;界面中无法指定自定义 ACME 服务器和 EAB 密钥。对于 Auto SSL,我们在同一服务器上使用 acme.sh:它获取 Sectigo 证书,然后您以标准方式将其作为现有证书添加到面板。面板的一般说明见如何在 FastPanel 中安装 SSL 证书。
在哪里获取密钥
- 在个人中心 1host.kz/bill 打开"Auto SSL (Sectigo ACME)"服务(可在 Auto SSL 页面下单)。
- 点击"Configure Now"(配置)。域名填入"Single Domains"(
www与不带www视为同一域名),通配符填入"Wildcard Domains"。 - 5–30 秒后卡片中显示 ACME account ID、EAB MAC ID、EAB MAC key、Server URL。
命令中:Server URL 为 https://acme.sectigo.com/v2/DV,YOUR_EAB_KID 为 EAB MAC ID,YOUR_EAB_HMAC_KEY 为 EAB MAC key。
需要准备
- 通过 SSH 以 root 身份访问 FastPanel 服务器。
- 网站已在面板中创建,域名指向服务器,80 端口开放。
- 网站根目录——请在面板的网站卡片中查看(通常为
/var/www/用户/data/www/example.kz)。
通过 acme.sh 签发证书
curl https://get.acme.sh | sh -s [email protected]
source ~/.bashrc
acme.sh --register-account --server https://acme.sectigo.com/v2/DV \
--eab-kid YOUR_EAB_KID --eab-hmac-key YOUR_EAB_HMAC_KEY
acme.sh --set-default-ca --server https://acme.sectigo.com/v2/DV
acme.sh --issue -d example.kz -d www.example.kz \
-w /var/www/fastuser/data/www/example.kz
将 fastuser 替换为网站所有者。账户注册只需一次,密钥会被记住。结果位于 ~/.acme.sh/example.kz_ecc/:example.kz.cer(证书)、example.kz.key(私钥)、ca.cer(证书链)。其他方式(--nginx、--standalone)见通过 acme.sh 使用 Auto SSL。
在面板中安装证书
- 打开网站卡片 →"SSL 证书"→"新证书"。
- 在左侧选择"现有"。
- "私钥"——
example.kz.key的内容。 - "证书"——
example.kz.cer的内容。 - "证书链"——
ca.cer的内容。 - 点击"保存"——面板会将证书应用到网站。
- 启用重定向:网站卡片 →"选项"→"HTTPS"→"重定向到 HTTPS"。
显示文件内容以便复制:cat ~/.acme.sh/example.kz_ecc/example.kz.cer。
续期后更新
acme.sh 通过 cron 在到期前约 30 天续期证书,但 FastPanel 保存着自己的副本,不会察觉续期。可选方案:
- 手动——每两个月重复上一节的步骤(面板在证书列表中显示有效期,请设置提醒)。
- 自动——通过
acme.sh --install-cert … --reloadcmd "systemctl reload nginx"替换面板写入网站 nginx 配置的文件。文件路径请在网站配置中查看:grep -r ssl_certificate /etc/nginx/fastpanel2-sites/。注意,面板在更改网站设置时可能会覆盖这些文件。
待确认:FastPanel 存放已上传证书的目录,以及替换后的文件在面板中重新保存网站后是否会保留——启用自动替换前请在当前版本上验证。
如果不想自行研究,请在个人中心向 ONEHOST 技术支持提交工单,我们为您配置自动更新。
检查与续期
通过 HTTPS 打开网站并在浏览器中查看证书——颁发者为 Sectigo。在控制台:
echo | openssl s_client -connect example.kz:443 -servername example.kz 2>/dev/null \
| openssl x509 -noout -issuer -dates
acme.sh --list
crontab -l | grep acme.sh
cron 行表示已启用续期。强制续期以测试:acme.sh --renew -d example.kz --force。续期后请在面板中更新证书(或确认自动替换已生效——openssl 输出中的 notAfter 日期应有变化)。Auto SSL 订阅每年通过账单续费一次,账单提前 14 天送达。