面板与 NAS

cPanel 用 AutoSSL 或购买的证书配置 SSL

作者: · 最后核实

cPanel 的 AutoSSL 会为账户里的每个域名免费签发并自动续期 Let's Encrypt 证书;购买的证书在 Manage SSL sites 里粘贴证书、私钥和 CA bundle 安装。证书生效后,在 Domains 页面打开 Force HTTPS Redirect。

以截至 2026 年 11 月的 cPanel & WHM 为准,菜单名称按官方文档的英文界面写,中文界面里是对应的译名。

国内用户先了解的几点

cPanel 上的 SSL 默认自动配置,国内用户出问题主要在 DNS 解析、CDN 和备案上。

cPanel 是收费的商业面板,国内读者接触到它,大多是买了海外的虚拟主机(共享主机),主机商给的就是 cPanel 账户。这种情况下你通常只有 cPanel 用户权限,没有 WHM,AutoSSL 的提供商和开关由主机商控制;第一步要改的设置,需要向主机商提工单。

国内环境下常见的问题:

  • 域名解析在国内服务商:很多人域名在阿里云或腾讯云注册,解析也放在云解析或 DNSPod。只要 A 记录指向 cPanel 服务器,AutoSSL 的 HTTP 验证就能通过,不需要把 DNS 迁过去;但通配符证书需要服务器自己管理权威 DNS,这种情况下签不了。
  • 套了 CDN:在 cPanel 站点前面接了国内或海外 CDN 的,验证请求会先到 CDN,AutoSSL 经常因此失败。可以在验证期间暂时直连,或者让 CDN 把 /.well-known/ 路径原样回源。
  • 主机在中国大陆:所有在中国大陆运行的网站都需要 ICP 备案,没有备案的域名可能被服务商拦截,验证也随之失败。海外主机不涉及备案。
  • 不再有到期提醒邮件:Let's Encrypt 从 2025 年 6 月 4 日起不再发送到期提醒邮件,AutoSSL 出了问题时,最好有一个独立的外部监控。

前提条件

AutoSSL 要通过互联网验证域名,所以 DNS 必须指向这台服务器。

  • 一个 cPanel 账户;要改提供商设置需要 WHM 的 root 权限(或者找主机商)。
  • 每个域名和 www 的 A 记录都指向服务器,例如 203.0.113.10。
  • 验证期间前面没有 CDN 代理,或者 DNS 托管在服务器上,可以走 DNS 验证。
  • 安装购买的证书时:证书文件、CA bundle(中间证书),以及为它生成的私钥。

第一步:确认 AutoSSL 已启用(WHM)

AutoSSL 的提供商和开关在 WHM 里设置,默认提供商是 Let's Encrypt。在 WHM 打开 SSL/TLS → Manage AutoSSL,在 Providers 标签页选择 Let's Encrypt(默认值),不要选 Disabled,提示时接受服务条款。在 Manage Users 里确认这个账户启用了 AutoSSL。想立即为所有用户运行一次,用 root 执行:

/usr/local/cpanel/bin/autossl_check --all

只有 cPanel 用户权限的,这一步交给主机商确认。SSL/TLS Status 里看不到任何 AutoSSL 状态时,多半是主机商把提供商设成了 Disabled,提工单确认。

第二步:在 cPanel 查看覆盖情况

SSL/TLS Status 页面列出每个域名的证书状态和 AutoSSL 失败原因。在 cPanel 打开 Security → SSL/TLS Status,筛选 Unsecured 和 Has AutoSSL Problems,每一行问题都会说明这个域名为什么没能通过验证。用不到的域名(比如废弃的子域名)可以排除掉,免得它们拖慢或干扰 AutoSSL 运行。

第三步(购买的证书):安装证书

购买的证书要把证书、私钥和 CA bundle 三样一起安装。在 cPanel 的 SSL/TLS → Certificate Signing Requests 里生成 CSR,或者用 CSR 生成器,拿去购买证书。签发后打开 Security → SSL/TLS → Manage SSL sites,选中域名,分别粘贴证书(CRT)、私钥(KEY)和 CA bundle(CABUNDLE),点 Install Certificate。CA bundle 必须填,否则部分手机和小程序会报证书链不完整,原理见 安装中间证书。

从云厂商下载的证书也可以这样装。以阿里云为例,Apache 格式的压缩包里 _public.crt 是站点证书、_chain.crt 是中间证书,分别贴进 CRT 和 CABUNDLE,.key 贴进 KEY。

第四步:强制 HTTPS

证书生效后,在 cPanel 的 Domains 页面为每个域名打开 Force HTTPS Redirect。如果你习惯用 .htaccess,就用 HTTP 跳转 HTTPS 里的规则,不要在开关之外再叠一层跳转。

验证

配置正确时,颁发者是 Let's Encrypt(AutoSSL)或你购买的 CA,证书链完整,到期时间在未来。用 SSL 证书检查 逐个检查域名,或在终端运行:

curl ssl.sh/example.com
curl ssl.sh/www.example.com

自动续期

AutoSSL 签发的证书不需要任何操作:AutoSSL 每晚随 cPanel 的更新进程运行,只要验证仍能通过,就会在到期前替换证书。会让它失效的是 DNS 迁走、加了 CDN 代理,或者重写规则拦住了 /.well-known/。在 WHM 的 Manage AutoSSL → Options 里设置通知级别,让问题能通知到你;日志在 /var/cpanel/logs/autossl。

Let's Encrypt 默认证书 2027 年 2 月 10 日起改为 64 天,2028 年 2 月 16 日起改为 45 天,AutoSSL 续得会更勤,但仍然是自动的。购买的证书不会被 AutoSSL 续期;公网证书最长 200 天,2027 年 3 月 15 日起 100 天,手动重装容易漏,可以改由 AutoSSL 签发。建议把域名都加到 ssl.sh 监控(开发中)。

常见问题排查

  • HTTP DCV 失败 / 内容不匹配:.htaccess 跳转或安全插件拦截了 /.well-known/acme-challenge/,把这个路径排除掉。
  • 域名没有解析到这台服务器:DNS 指向了 CDN 或旧主机,改好记录,或改用 DNS 验证。
  • CAA 记录阻止签发:见 CAA 记录阻止签发。
  • 同一域名证书过多:反复重签触发了 Let's Encrypt 的限制,见 Let's Encrypt 频率限制。
  • HTTPS 能打开但没有小锁:页面加载了 HTTP 资源,见 混合内容警告。

常见问题

AutoSSL 支持通配符吗?

按 cPanel 文档,Let's Encrypt 这个 AutoSSL 提供商支持通配符域名;通配符只能用 DNS 验证,所以要求这台服务器管理着域名的权威 DNS。域名解析放在阿里云云解析、DNSPod 等外部服务商时,AutoSSL 签不了通配符,可以为各个子域名分别签发,或者购买通配符证书后手动安装。

AutoSSL 会替换我购买的证书吗?

只有管理员开启了“允许 AutoSSL 替换非 AutoSSL 证书”这类选项,而且购买的证书已经无效或快过期时才会替换。cPanel 建议只在清楚后果的情况下开启。

cPanel 上的证书还要手动续期吗?

AutoSSL 签发的证书不用,会自动续期。购买的证书每次到期前都要重新签发、重新安装,而且 2026 年 3 月 15 日起公网证书最长只有 200 天。

国内服务器用 cPanel 还是宝塔?

国内服务器一般用宝塔或 1Panel。cPanel 是按许可证收费的商业面板,多见于海外虚拟主机;宝塔、1Panel 同样集成了 Let's Encrypt,见 宝塔面板配置 SSL 证书 和 1Panel 配置 SSL 证书。

资料来源

  1. cPanel Docs: Manage AutoSSL (WHM)
  2. cPanel Docs: SSL/TLS Status
  3. cPanel Docs: SSL/TLS
  4. Let's Encrypt: Challenge Types