解决 CyberPanel 签发 SSL 无效的问题


常见于 2.1 版本,症状是生成证书的时间变长且会生成无时间限制的、没用的自部署证书。

有可能是因为依赖的 acme.sh 升级,转为默认使用 ZeroSSL 而不是之前的 Let’s Encrypt(两者区别:https://zerossl.com/letsencrypt-alternative/),而面板的支持可能没有跟上,解决办法是改回使用 Let’s Encrypt,从服务器上执行命令:

/root/.acme.sh/acme.sh --set-default-ca --server letsencrypt

然后要先删除错误生成的自签名证书和相关服务器配置,再执行新的生成操作。

自签名证书在:/etc/letsencrypt/live/ 下对应的以域名命名的文件夹里,配置文件在面板的“网站-网站列表”,打开对应网站的管理设置,然后打开里面的“配置-虚拟主机配置”,找 vhssl 开头的配置组,删除掉以后重启服务,再执行“签发SSL证书”。

更新(上面方法无效的话,试试下面的):

在终端里手动加上 debug 参数生成证书替换掉自部署证书(将下面的 <YOUR_DOMAIN> 换成你自己的域名):

/root/.acme.sh/acme.sh --issue -d <YOUR_DOMAIN> -d www.<YOUR_DOMAIN> --cert-file /etc/letsencrypt/live/<YOUR_DOMAIN>/cert.pem --key-file /etc/letsencrypt/live/<YOUR_DOMAIN>/privkey.pem --fullchain-file /etc/letsencrypt/live/<YOUR_DOMAIN>/fullchain.pem -w /home/<YOUR_DOMAIN>/public_html --force --debug

运行后可能会看到类似下面的提示:

[Friday 07:07:2021 00:00:11 PM UTC] No EAB credentials found for ZeroSSL, let's get one
[Friday 07:07:2021 00:00:11 PM UTC] acme.sh is using ZeroSSL as default CA now.
[Friday 07:07:2021 00:00:11 PM UTC] Please update your account with an email address first.
[Friday 07:07:2021 00:00:11 PM UTC] acme.sh --register-account -m my@example.com
[Friday 07:07:2021 00:00:11 PM UTC] See: https://github.com/acmesh-official/acme.sh/wiki/ZeroSSL.com-C

问题就出在 acme.sh --register-account -m my@example.com 这句上,如果要继续使用 ZeroSSL 的话,则需要进行注册(将下面<YOUR_EMAIL@example.com> 换成你的邮箱地址):

/root/.acme.sh/acme.sh --register-account -m <YOUR_EMAIL@example.com>

不想用 ZeroSSL 的话可以执行上个方案提到命令把证书颁发机构换回之前版本默认的 LetsEncrypt(实测要先手动生成或删除完证书再修改认证机构,不然还会出错):

/root/.acme.sh/acme.sh --set-default-ca --server letsencrypt

参考来源:https://simontech.dev/support/knowledge-base/servers/cyberpanel/cyberpanel-certificate-issue-in-version-2-1