先看报错信息 判断卡在哪一步
宝塔申请证书失败,报错文字是不一样的,先别乱试,把报错抄下来看关键词。出现解析或者域名相关的字样,问题在 DNS。出现 timeout、connection 这类字样,是网络连不上 CA。出现验证失败、cannot fetch,是验证路径没通。
下面六种原因基本覆盖了实际会遇到的情况,按顺序试,多数能自己解决。
第一种 域名解析没生效或者填错了
申请的是哪个域名,就必须让这个域名解析到当前这台服务器的 IP。常见错误有三类。一是域名还没解析,直接点了申请。二是解析的是 www 而申请的是裸域,或者反过来。三是域名用了 CDN,解析指向的是 CDN 节点,不是源站。
核对方式很简单,本地用 ping 或者 nslookup 看这个域名解析出来的是不是本机 IP。如果是 CDN 的 IP,证书申请要么在 CDN 那边签,要么临时把解析切回源站,签完再切回去。这一步是六种原因里占比最高的。
第二种 验证路径访问不到 80 口被拦
免费证书的主流验证方式是 HTTP 文件验证,CA 会来抓取你站点根目录下的一个特定文件。如果 80 端口不通,或者这个文件被伪静态、重定向、WAF 挡住了,验证就过不去。
自查办法是在本地直接访问那个验证地址。先用 curl 请求 http 版本的完整路径,看返回的是不是那段验证内容。返回 301、403、404 都不行。301 说明强制跳转了 HTTPS,要临时关一下;403 是权限或者安全软件拦的;404 是文件没生成成功或者路径不对。
还有云服务器的安全组要放通 80。有些机器默认只开了 22 和 443,80 是关的。这一条特别容易被忽略,因为浏览器访问时被跳转到 HTTPS,看不出 80 有问题。开机器之后先确认这一条,比事后找主机商问要快得多。
第三种 CA 接口连不上或者超时
现象是点申请之后转很久,最后提示 timeout 或者连接失败,什么具体信息也没有。这通常是服务器到国外 CA 接口的网络不通,晚高峰尤其明显。
处理办法是换个时间再试,或者改用 DNS 验证方式,它不依赖从你服务器出去访问 CA。另外服务器时间不准也会导致接口请求签名失败,先用 date 看一眼系统时间,偏差大的话同步一下时间。
第四种 站点绑定的域名和申请的不一致
宝塔里一个站点可以绑多个域名。如果申请证书的域名不在这个站点的绑定列表里,验证文件就不会放在正确的目录下,CA 抓不到。
还有一种情况是同一个域名绑了两个站点,请求被分到了另一个站点目录,验证文件同样找不到。排查时看站点设置里的域名列表,把要申请的域名确认在里面,并且只属于一个站点。
第五种 证书链不完整和续签失败
证书申请成功但浏览器提示不安全,这多半是证书链不完整,中间证书没一起部署。宝塔的证书夹里通常会自动带全链版本,选带 fullchain 字样的文件部署即可。
续签失败常见于到期前那几天,原因往往还是验证路径失效,比如当初的验证文件被清理了,或者站点改过目录结构。建议把自动续签的日志看一眼,不要等到过期当天才发现。选主机商的时候也可以确认一下是否支持自定义证书部署,免得后面被限制在只能用它签发的证书。更多宝塔面板报错的处理思路,可以去zhujishang.com翻相关文章。




