帮助

在 ISPmanager 6 中使用 Auto SSL

ISPmanager 6 的内置模块只能从 Let's Encrypt 签发免费证书。可以通过 /usr/local/mgr5/etc/ispmgr.conf 中的 LetsencryptAcmeUrl 参数更改 ACME 服务器地址,但面板不支持 Sectigo 所需的外部账户绑定(EAB)密钥。因此 Auto SSL 的可行方案是:由同一服务器上的 acme.sh 签发证书,再以"现有证书"方式添加到面板。

在哪里获取密钥

  1. 在个人中心 1host.kz/bill 打开"Auto SSL (Sectigo ACME)"服务(可在 Auto SSL 页面下单)。
  2. 点击"Configure Now"(配置),在"Single Domains"中填写域名(www 与不带 www 视为同一域名);通配符填入"Wildcard Domains"。
  3. 5–30 秒后显示 ACME account IDEAB MAC IDEAB MAC keyServer URL

下文中:Server URL 为 https://acme.sectigo.com/v2/DVYOUR_EAB_KID 为 EAB MAC ID,YOUR_EAB_HMAC_KEY 为 EAB MAC key。

需要准备

  • 通过 SSH 以 root 身份访问 ISPmanager 6 服务器。
  • 网站已在面板中创建,域名指向服务器,80 端口开放。
  • 网站所属的面板用户名(示例中为 user1)和网站根目录:ISPmanager 中通常为 /var/www/user1/data/www/example.kz。确切路径请在面板中查看:"网站"→ 网站 →"根目录"。

通过 acme.sh 签发证书

以 root 身份安装 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/user1/data/www/example.kz

文件会出现在 ~/.acme.sh/example.kz_ecc/(默认使用 ECC 密钥):fullchain.cerexample.kz.keyca.cer。关于签发方式的更多说明见通过 acme.sh 使用 Auto SSL

将证书添加到面板

  1. 在 ISPmanager 中打开"SSL 证书"→"添加证书"→ 类型"现有"。
  2. "用户"——网站所有者(user1)。
  3. "SSL 证书"——example.kz.cer 的内容(仅域名证书,PEM 格式)。
  4. "SSL 证书密钥"——example.kz.key 的内容。
  5. "SSL 证书链"——ca.cer 的内容。
  6. 保存。然后"网站"→ 选择网站 →"编辑"→ 启用安全连接,选择刚添加的证书,并按需启用 HTTP 到 HTTPS 的重定向。

输出文件内容以便复制:cat ~/.acme.sh/example.kz_ecc/example.kz.cer 等。面板会将自己的副本保存在 /var/www/httpd-cert/user1/

续期后自动更新

acme.sh 会在到期前约 30 天自动续期,但面板不会知道——它保存着自己的副本。为避免每两个月手动搬运文件,请告诉 acme.sh 续期后的证书放在哪里以及如何重载 Web 服务器:

ls /var/www/httpd-cert/user1/          # 找到已添加证书的文件
acme.sh --install-cert -d example.kz \
  --cert-file      /var/www/httpd-cert/user1/example.kz.crt \
  --key-file       /var/www/httpd-cert/user1/example.kz.key \
  --ca-file        /var/www/httpd-cert/user1/example.kz.crtca \
  --fullchain-file /var/www/httpd-cert/user1/example.kz.crt \
  --reloadcmd      "systemctl reload nginx; systemctl reload httpd || systemctl reload apache2"

待确认:/var/www/httpd-cert/USERNAME/ 中证书文件的确切名称(面板按 名称_编号 命名,例如 example-crt_1)——请使用 ls 中看到的名称;--fullchain-file 的路径必须与网站 nginx/Apache 配置引用的文件一致。

不修改面板文件的替代方案:每次续期后在"SSL 证书"→ 证书 →"编辑"中重新粘贴内容。如有疑问,请联系 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

续期由 acme.sh 的每日 cron 任务完成(crontab -l | grep acme.sh),之后执行 --reloadcmd。完整测试流程:acme.sh --renew -d example.kz --force,再运行 openssl——"notAfter"日期应有变化。面板中"现有"类型的证书标记为不自动续期——这是正常的,续期由 acme.sh 负责。Auto SSL 订阅每年通过账单续费一次;订阅有效期间,签发和续期不受限制。

如有任何疑问,请联系我们