本文介绍SSL证书部署后未生效或网站显示不安全的排查方法和解决方案。
浏览器提示“您与此网站建立的连接不安全”
可能原因:浏览器缓存未清理、SSL证书与域名不匹配或证书已过期。
解决方案:
清理浏览器缓存后再尝试访问您的网站。
检查SSL证书是否与域名匹配。
方式一:通过数字证书管理服务控制台查看
登录数字证书管理服务控制台。
在左侧导航栏,选择证书管理 > SSL证书管理。
在SSL证书管理页面,定位到您部署的证书,检查证书的域名是否和站点对应的域名相同,如果不相同,请重新上传域名对应的证书。
方式二:通过浏览器查看
访问相应的网站域名,单击浏览器地址栏安全锁图标。
单击证书无效。
在证书页面,查看证书公用名(CN)是否与网站域名一致。
检查SSL证书是否过期。
SSL证书默认有效期为1年,如果您的服务器上的SSL证书非首次安装,在通过HTTPS访问网站时报错且提示不安全,请您检查SSL证书是否到期。您可以参考以下两种方式进行查看。
方式一:通过数字证书管理服务控制台查看
登录数字证书管理服务控制台。
在左侧导航栏,选择证书管理 > SSL证书管理。
在SSL证书管理页面,定位到您部署的证书,检查是否过期。
如若过期,请您及时续费证书,具体操作,请参见SSL正式证书续费。
方式二:通过浏览器查看
访问相应的网站域名,单击浏览器地址栏安全锁标志。
单击证书无效。
在证书页面,查看证书到期时间。
检查部署的SSL证书格式是否错误。
不同的Web服务器支持的证书格式不同,详情请参见部署SSL证书。
可能原因:配置文件中的证书路径或证书文件名配置有错误。
解决方案:
请检查Web服务器配置文件中的SSL证书设置,确保配置文件中指定的证书存储路径和文件名与服务器上实际存放的证书路径和文件名完全一致。以下是Nginx的配置示例:
server {
listen 443 ssl;
server_name example.com;
#请将以下路径替换为您自己的SSL证书和私钥文件路径
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
# 其他配置...
}
可能原因:购买了新证书,但Web服务器仍在使用旧版证书或配置文件中的SSL证书路径未及时更新。
解决方案:
通过创建部署任务,可以将已签发的证书上传至云服务器的指定路径,或替换指定路径中的证书文件,具体操作,请参见手动部署证书至阿里云轻量应用服务器或ECS。
浏览器提示“无法访问此页面”
可能原因:443端口未放行。
解决方案:
如果您使用的是阿里云ECS服务器,请前往ECS管理控制台安全组页面,放行443端口。关于如何配置安全组,请参见添加安全组规则。
说明用默认端口号访问网站时,使用HTTP(默认端口80)或HTTPS(默认端口443)可直接输入域名;若使用非默认端口,则需在域名后附加端口号,格式为
http://域名:端口号
或https://域名:端口号
。确保服务器允许HTTPS连接所使用的默认端口443。如果使用非标准端口,请检查该端口是否开放并且没有被其他服务占用。
如果您有设置防火墙,检查服务器自身的防火墙设置,确保它们没有阻止外部对443端口的访问。
如果您使用的不是阿里云ECS服务器,请参照对应的服务器安全设置指南,配置放行服务器的443端口。
可能原因:Web服务器配置错误。
解决方案:
检查Web服务器的配置文件,确保其正确设置了SSL/TLS相关的指令并监听了443端口。
检查配置文件是否有语法错误。
可能原因:SSL证书已过期或未正确签发。
解决方案:
检查证书是否过期,如若过期,请您及时续费证书,具体操作,请参见SSL正式证书续费。
检查证书是否被正确签发,并且与您的域名匹配。
可能原因:DNS解析问题。
解决方案:
确认您的域名是否正确地指向了服务器的IP地址。可以使用
ping
或者nslookup
命令检查域名是否能够正确解析为IP地址。如果使用的是CDN服务,请确认CDN设置正确,并且没有阻止HTTPS流量。
如果上述步骤都不能解决问题,建议您仔细查阅Web服务器和应用程序的日志文件,以获取更详尽的信息。此外,您也可以尝试从其他设备或不同位置访问网站,以排除本地网络或设备特有的问题。如有更多疑问,请联系产品技术专家进行咨询,详情请参见专家一对一服务。
浏览器提示“使用了不受支持的协议”
可能原因:您的Web服务器可能使用了不安全的协议版本(如SSL 2.0、SSL 3.0、TLS 1.0或TLS 1.1),或者Web服务器配置的TLS协议与操作系统所支持的TLS协议不一致。
解决方案:
在Web服务器配置文件中使用更安全的协议版本,如TLS 1.2或TLS 1.3。这里以Nginx为例向您演示如何在配置文件中设置支持的SSL/TLS协议版本。请确保您的客户端支持已配置的TLS协议版本,否则可能会遇到连接失败的问题。
server { listen 443 ssl; server_name yourdomain.com; # SSL证书和密钥路径 ssl_certificate /path/to/your_certificate.crt; ssl_certificate_key /path/to/your_private.key; # 设置支持的SSL/TLS协议版本 ssl_protocols TLSv1.2 TLSv1.3; # 可选:设置更安全的加密套件 ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256'; location / { root /var/www/html; index index.html index.htm; } }
确保服务器使用的加密套件与操作系统支持的TLS协议一致。您可以在操作系统中进行相应设置。不同操作系统设置TLS协议的方法不同,以下是以Windows操作系统为例的设置步骤。
打开控制面板,单击 网络和Internet。
在 网络和Internet面板中,单击Internet选项,单击高级。
选择启用TLS 1.2或TLS 1.3来提供更好的安全性和兼容性。
浏览器提示“此页面上部分内容不安全(例如图像)”或外部资源(图片、脚本、样式等)无法成功加载
可能原因:您的网站代码中引用了HTTP协议的资源。
解决方案:
将所有HTTP资源更新为HTTPS,确保所有外部资源(图片、脚本、样式等)都可以通过HTTPS协议加载。
如果资源与您的网站在同一个域名下,您可以使用相对URL地址,这样浏览器会自动使用当前页面的协议(HTTP或HTTPS)来加载资源。
检查第三方资源的HTTPS支持,或直接移除相关HTTP资源的引用,部署发布后再次访问网站。
不同网站代码的实现逻辑可能存在差异,请您根据具体情况进行修改。如有疑问,请联系产品技术专家进行咨询,详情请参见专家一对一服务。