宝塔面板配 SSL 协议这事,说难不难,点几下保存就完事;说简单也不简单。我见过太多人,证书一贴、开关一开,浏览器地址栏照样甩你一行红字。怪证书的居多吧,其实证书本身往往没问题。错的是旁边那三个地方。踩中哪一个都等于白配。网站看着是 https 了,实际该报错还报错。

证书那栏贴的到底是哪个文件
宝塔的SSL页面里有两栏输入框,上面叫“证书(PEM格式)”,下面叫“私钥(KEY格式)”。不少人从服务商那儿下载下来一个压缩包,里面四五个文件,随手挑个名字最好看的粘进去,剩下的扔在下载文件夹里不管了。链就这么断了,自己还浑然不觉。
我在命令行里一般这么看:openssl s_client -connect 你的域名:443 -servername 你的域名,回车之后翻到最上面那一段,数一数返回了几张证书。正常的应该能看到你的域名证书加一张中间证书,至少两张。只有一张的话,电脑上的Chrome可能还显示正常,手机上、微信内置浏览器里就开始给你脸色看,报不安全或者干脆白屏。
这个坑太常见了。
解决办法不复杂,把fullchain.pem(有的服务商叫证书链文件、ca_bundle)连同私钥一起贴进去,别只贴domain.crt那个单文件。要是下载包里压根只有.crt一个文件、也没有中间证书,就去服务商的帮助页翻一翻,通常单独提供一张chain文件,把它拼在你证书后面保存重载就好。
宝塔面板配置ssl协议:443端口这关很多人压根没放行
面板上显示“已部署”,不代表外面连得进来。我碰到过一个站点,后台一切绿油油,浏览器打开就是转圈到超时,主人在面板里翻来覆去找了半天。
先在服务器上敲命令。
ss -lntp | grep 443,有输出说明Nginx在监听;没输出就先回面板的网站设置里确认SSL是不是真的保存成功了,别在错误的方向上使劲。
再往外一层是云服务器的安全组,这层最容易忘,80和443各要一条放行规则,机器开出来的时候很多人只放了22和80,等证书配完才发现外面根本连不进来,然后又回头怀疑证书有问题,白白折腾一晚上。系统内部还有一道firewalld或者ufw,firewall-cmd –list-ports看一眼,443/tcp不在就补上,补完记得firewall-cmd –reload,不然改完跟没改一样。
别急着怪证书。
顺手提醒一句,宝塔面板自己“安全”页面那列端口是给面板的系统防火墙用的,跟云厂商安全组是两回事,别配了一边就以为齐活了。测通没通,curl -Iv https://你的域名最直接,连不上会明确告诉你Connection refused还是timeout,两种错法对应的排查方向都不一样。
强制HTTPS那条跳转,写反了就是无限循环
面板里那个“强制HTTPS”按钮挺好用,前提是你的站点没走反向代理。前面挂了一层 CDN 或者别的代理,回源走的是 http,Nginx 看到的也是 http,它就一直 301 往 https 上推。浏览器那边就成了重定向次数过多,页面直接打不开。看着像证书问题?说白了,跟证书一点关系没有。
这种情况我一般不去动跳转规则,而是在站点配置文件里补上X-Forwarded-Proto的判断,或者干脆在CDN那边把回源协议改成HTTPS。两处选一处改,别都动,改重了又是一轮新的排查,够你忙的。
顺序别搞反。
还有一个更隐蔽的:页面本身已经是https了,但模板里引的图片、加载的js、还有那个不起眼的字体文件,地址还写死成http://,浏览器地址栏照旧不给小锁,开发者工具的Console里会甩出一串Mixed Content提示,翻一遍就看见了。改模板或者用协议相对路径,一会儿的事,不然你自己猜半天猜不到点子上。
证书上的名字对不对,也得瞄一眼
单域名证书只写了一个名字,www和不带www在证书里算两条,浏览器访问没写进去的那个就报错,有人拿着example.com的证书去配www.example.com,配完一脸懵。要么换多域名或者泛域名证书,要么把没覆盖的那个做一个301跳过去,别让访客撞在墙上。
还有个细节,面板里点完保存,配置写进文件了,但Nginx不一定重载。养成习惯,保存之后再看一眼面板右上角有没有提示重载成功,或者自己敲一次nginx -t && nginx -s reload,两秒钟的事,能省掉很多“明明配了却没生效”的困惑呢。
TLS版本和密码套件,默认的未必够用
宝塔默认配置里ssl_protocols一般会带上TLSv1.2和TLSv1.3,比较新的版本已经把TLSv1和TLSv1.1关掉了。面板版本老一点的,配置文件里还留着这两个老协议,做等保测评或者安全扫描的时候会被标出来。改法是编辑站点配置文件,把ssl_protocols那行只留TLSv1.2 TLSv1.3,保存重载,改动很小,效果很实在。
密码套件这块我不建议乱抄网上一长串,抄多了容易把某些老安卓机挡在门外,访客打不开还得来找你。够用就行。
续签失败,站点会静默地瘸掉
免费证书九十天一续,宝塔里有自动续签的开关,但自动续签要验证域名归属,走的是80端口那条路。80被安全组关掉、或者站点做了全站301跳到https,验证就容易失败,而失败往往只写在日志里,页面上一点提示都没有。
我习惯在日历上标一个提前半个月的日子,手动点一次续签,顺手翻翻日志有没有报错。等浏览器弹证书过期,那已经是事故了,访客流失你都不知道。平时也可以用curl -Iv https://你的域名看一眼到期时间,一条命令,比翻面板快。具体续签策略和验证方式,各家服务商口径不太一样,以官方页面说明为准。
三个地方,对一遍就够
证书链贴完整、443从云安全组到系统防火墙都放行、强制跳转别和反向代理打架——这三处对上了,剩下的TLS版本、续签这些属于锦上添花,不影响能不能用。
排查顺序上我一般先看外面通不通,再看证书全不全,最后才去翻页面里有没有混着http://的资源。反过来查会绕远路,越查越乱。配完之后别急着关页面,换个手机、换个网络再打开一次,能提前发现一半问题。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!