Chrome提示“缺少中间证书”,是因为网站的SSL证书配置不完整。正常情况下,一个完整的证书链包含三部分:网站本身的证书(终端证书)、一个或多个中间证书,以及内置在系统中的根证书。网站服务器只发送了终端证书,但漏掉了关键的中间证书,导致链条断裂,所以Chrome无法验证该网站的身份。
下面分两种情况来解决这个问题。
一、如果你是网站访客
你无法修复服务器端的配置,但可以通过下面的步骤临时访问网站,并把问题报告给网站管理员。
1. 手动下载并安装缺失的中间证书(推荐)
这是最安全、也最直接的方法。Chrome可以帮你找出并下载缺少的证书。
查找下载链接:点击地址栏左侧的“不安全”或锁形图标,选择“证书”或“连接安全”。在“详细信息”或“证书路径”标签页中,找到“颁发机构信息访问”字段,里面通常会有一个“CA 颁发者”的下载链接。
导入证书:下载该证书文件(通常是`.crt`或`.pem`格式)。
安装证书:双击下载的证书文件,点击“安装证书”。在导入向导中,存储位置选择“本地计算机”,然后将证书放入“中间证书颁发机构”。按向导完成导入后,刷新页面,错误就应该消失了。
2. 暂时跳过警告(仅适用于紧急情况)
不推荐此方法,因为它会降低安全性。在警告页面点击“高级”或“详细信息”,然后选择“继续前往...(不安全)”。这只能作为临时应急手段。
3. 向网站管理员反馈
在页面上找找管理员的联系方式,将证书错误截图发送给他们,方便他们从根源上修复。
二、如果你是网站管理员
这是服务器配置的问题,需要你补全缺失的中间证书。
1. 确认问题
你可以使用在线工具(如SSL Labs的SSL测试工具)检查,它能清晰地告诉你证书链是否完整。
2. 获取完整证书文件
去你购买证书的CA机构后台,下载完整的证书包。解压后,通常会找到包含中间证书的`.ca-bundle`或`fullchain`文件。
3. 根据服务器类型配置
对于Nginx:需要将网站证书和中间证书合并成一个文件。通常是让`fullchain.pem`文件同时包含两者。在配置文件中,确保`ssl_certificate`指令指向这个合并后的文件。
nginx
ssl_certificate /path/to/fullchain.pem; # 这个文件应包含网站证书和中间证书
ssl_certificate_key /path/to/privkey.pem;
对于Apache:同样需要合并证书。将网站证书和中间证书按顺序合并到一个`.crt`文件中(网站证书在前,中间证书在后),然后在配置文件中通过`SSLCertificateFile`指令指向它。
对于IIS:需要在服务器上通过“运行”输入`certlm.msc`打开本地计算机证书管理单元,手动将中间证书导入到“中间证书颁发机构”文件夹中。
4. 重启验证
修改配置后,重启Web服务(如`nginx -s reload`)。再次使用SSL Labs工具测试,如果显示“证书链完整”,则问题已解决。
> 除了中间证书缺失,以下几种情况也可能导致类似的证书错误,可以一并排查:
> 电脑系统时间错误:如果时间偏差太大,证书会被浏览器认为“尚未生效”或“已过期”。同步一下系统时间即可。
> 浏览器或系统根证书库太旧:极少数情况下,操作系统里可能缺少一些新的根证书。尝试更新系统或浏览器到最新版。
> 使用了不被信任的证书:网站如果使用的是自签名证书或已被浏览器停止信任的证书颁发机构(如早期的沃通),也会报错。这种情况只能让网站管理员更换合规的SSL证书。