如何在 CyberPanel 中重新签发 SSL 证书:通过控制面板与 SSH 的完整指南

SSL 证书是保障网站安全的重要组成部分,它能够对网站与访问者之间传输的数据进行加密,同时提升浏览器对网站的信任度。然而,在网站运行过程中,SSL 证书可能因为到期、自动续期失败、DNS 配置变更、服务器迁移或系统故障等原因而出现问题。在这种情况下,重新签发 SSL 证书是恢复网站安全访问的重要措施。

本文将详细介绍在 CyberPanel 中重新签发 SSL 证书的多种方法,包括通过 CyberPanel 图形界面以及 SSH 命令行方式完成操作。

什么情况下需要重新签发 SSL 证书?

如果出现以下情况,建议重新签发 SSL 证书:

  • 浏览器显示“连接不安全”警告。
  • SSL 证书已过期或即将到期。
  • CyberPanel 自动续期失败。
  • 网站迁移到新的服务器。
  • 域名 DNS 记录发生变更。
  • SSL 证书文件被误删或损坏。

方法一:删除旧 SSL 证书并通过 CyberPanel 重新签发

这是最简单、最常用的方法。

第一步:删除旧证书

通过 SSH 登录服务器,并执行以下命令:

rm -rf /etc/letsencrypt/live/domain.com
rm -rf /etc/letsencrypt/archive/domain.com
rm -rf /etc/letsencrypt/renewal/domain.com.conf

然后重启 OpenLiteSpeed:

systemctl restart lsws

第二步:通过 CyberPanel 重新签发 SSL

登录 CyberPanel 后,进入:

Websites → List Websites → Manage → Issue SSL

或者:

SSL → Manage SSL

CyberPanel 将自动连接 Let’s Encrypt 并重新为域名申请新的 SSL 证书。

方法二:通过 CyberPanel 命令行工具重新签发 SSL

如果 CyberPanel 后台无法访问或运行异常,可以直接通过 SSH 进行操作。

执行以下命令:

python3 /usr/local/CyberCP/plogical/sslUtilities.py -d domain.com

某些 CyberPanel 版本可能需要使用:

python3 /usr/local/CyberCP/plogical/virtualHostUtilities.py issueSSL --domain domain.com

执行完成后,可检查证书是否成功生成:

ls -la /etc/letsencrypt/live/domain.com/

如果能够看到 cert.pem、fullchain.pem 和 privkey.pem 等文件,则表示 SSL 已成功签发。

方法三:使用 Certbot 签发 SSL 证书

Certbot 是 Let’s Encrypt 官方推荐的 SSL 管理工具。

安装 Certbot

Ubuntu 系统:

apt update
apt install certbot -y

AlmaLinux 或 Rocky Linux:

dnf install certbot -y

申请 SSL 证书

certbot certonly --webroot \
-w /home/domain.com/public_html \
-d domain.com \
-d www.domain.com

申请成功后,证书将保存在:

/etc/letsencrypt/live/domain.com/

如果需要,也可以将证书手动导入 CyberPanel。

方法四:申请通配符 SSL(Wildcard SSL)

通配符 SSL 可以保护同一主域名下的所有子域名。

例如:

*.domain.com

执行以下命令:

certbot certonly \
--manual \
--preferred-challenges dns \
-d "*.domain.com" \
-d domain.com

Certbot 会要求您创建一个 DNS TXT 记录:

_acme-challenge.domain.com

等待 DNS 生效后,Let’s Encrypt 将完成验证并签发通配符 SSL 证书。

这种方式特别适用于拥有多个子域名的网站,例如:

  • mail.domain.com
  • blog.domain.com
  • api.domain.com
  • shop.domain.com

方法五:使用 acme.sh

许多服务器管理员更倾向于使用 acme.sh,因为它更加轻量且运行稳定。

安装 acme.sh

curl https://get.acme.sh | sh
source ~/.bashrc

申请 SSL 证书

acme.sh --issue \
-d domain.com \
-w /home/domain.com/public_html

安装证书

acme.sh --install-cert -d domain.com \
--key-file /usr/local/lsws/conf/key.pem \
--fullchain-file /usr/local/lsws/conf/cert.pem

重启 OpenLiteSpeed:

systemctl restart lsws

SSL 申请失败时的排查方法

如果 Let’s Encrypt 无法成功签发或续期 SSL 证书,请检查以下项目。

检查 DNS 解析

确保域名已经正确解析到服务器 IP 地址:

dig domain.com +short
dig www.domain.com +short

检查 80 端口是否可访问

Let’s Encrypt 在验证域名所有权时需要访问 HTTP 服务。

ss -tulpn | grep :80

或者:

curl http://domain.com

检查防火墙设置

确保以下端口已经开放:

80/tcp
443/tcp

查看防火墙状态:

firewall-cmd --list-ports

或者:

ufw status

查看 CyberPanel 日志

tail -f /usr/local/lscp/logs/error.log

查看 Let’s Encrypt 日志

tail -f /var/log/letsencrypt/letsencrypt.log

总结

CyberPanel 提供了多种 SSL 证书签发与续期方式,包括图形化管理界面和命令行工具。在大多数情况下,删除旧证书后重新执行“Issue SSL”即可解决问题。

对于拥有大量子域名的网站,使用 DNS 验证方式申请通配符 SSL 证书将更加灵活和高效。同时,定期检查 DNS 配置、防火墙规则以及系统日志,有助于避免 SSL 相关故障,确保网站始终保持安全、稳定和可访问状态。