网站突然显示"不安全"?SSL证书常见问题一锅端

王尘宇 问题解答 2

打开自己的网站,浏览器地址栏一个红色三角警告"不安全"——这种体验每个站长大概都经历过。SSL证书的问题不复杂,但出问题的时候往往手忙脚乱。整理了最常见的几个场景和解决方案。

问题1:证书过期

症状:浏览器显示"您的连接不是私密连接"或"NET::ERR_CERT_DATE_INVALID"。

原因:SSL证书的有效期通常是一年(付费证书)或三个月(Let's Encrypt免费证书)。到期了没续,浏览器就会拒绝连接。

解决:如果你用的是Let's Encrypt(比如通过宝塔面板申请的),SSH登录后执行certbot renew。宝塔面板用户直接在面板→网站→SSL里点"续签"。如果用的是付费证书,到购买平台下载新证书,然后替换服务器上的证书文件,重启Nginx或Apache。

预防:设一个日历提醒,提前一周。或者用acme.sh配置自动续期脚本——配好了基本就不用管了。

问题2:证书域名不匹配

症状:证书本身是有效的,但浏览器提示"此证书仅对以下域名有效",里面没有你当前访问的域名。

常见场景:证书只签发了你的主域名(比如wangchenyu.com),但你是通过子域名(www.wangchenyu.com)访问的,而证书里不包含这个子域名。

解决:申请证书的时候记得勾选"包含www子域名"。用Let's Encrypt的话,命令里加上-d example.com -d www.example.com两个域名都包含进去。如果是宝塔面板,申请时"域名"一栏同时填主域名和带www的域名,用换行隔开。

问题3:中间证书缺失

症状:在某些浏览器(尤其是手机浏览器和旧版系统)上正常,在另一些浏览器上显示证书错误。

原因:SSL证书不是单独一个文件,而是一个证书链——你的证书→中间CA证书→根CA证书。如果服务器只部署了你的证书,没有部署中间证书,部分客户端会因为无法验证完整链条而报错。

解决:大部分证书提供商会给你一个"fullchain.pem"文件,这就是证书+中间证书的合并文件。部署的时候一定要用这个文件,而不是只用"cert.pem"。

检测:访问SSL Labs(ssllabs.com/ssltest)输入你的域名,它会给出完整的证书链检查结果。如果中间证书缺失,会标红提示。

问题4:混合内容警告

症状:地址栏显示的不是绿色锁,而是一个灰色图标或者"部分内容不安全"的提示。

原因:你的页面通过HTTPS加载,但页面里的某些资源(图片、CSS、JS)还在用HTTP链接。浏览器会拦截这些HTTP资源或者给出警告。

解决:Chrome浏览器按F12打开开发者工具,Console面板里会明确列出哪些资源是混合内容。把页面里所有的http://改成https://即可。如果某个外部资源不支持HTTPS,考虑换一个支持HTTPS的替代源,或者把资源下载到自己的服务器上。

问题5:宝塔面板申请证书失败

常见报错是"验证失败,请检查域名是否解析"。检查三个地方:

1. 域名是否正确解析到了当前服务器的IP(用ping验证)

2. 网站是否开启了301重定向到HTTPS。如果开启了这个重定向,需要先关掉再申请证书(因为申请时需要HTTP验证)

3. 防火墙是否开放了80端口。Let's Encrypt的HTTP验证必须通过80端口

一句话总结

证书过期就续签,域名不对就重申请包含所有子域名,中间证书就用fullchain.pem,混合内容就全站HTTPS。SSL问题听起来吓人,其实就这几类。

标签: SSL证书 网站安全 https Let's Encrypt 问题解答

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~