服务器TLS版本过低?五步升级到安全版本
很多网站突然提示“服务器TLS版本过低”,导致部分浏览器打不开,支付接口报错。
这是因为早期TLS 1.0和1.1已被淘汰,主流平台要求至少TLS 1.2。
本文教你用最直接的办法升级服务器TLS版本,全程可跟做。
先确认你的服务器TLS版本
在动手前,先看看当前到底是什么版本。
用下面两种方法都行:
方法一:在线检测(最简单)
打开浏览器,访问 https://www.ssllabs.com/ssltest/ 或 https://myssl.com,输入你的域名,几秒后就能看到“TLS版本”一行。如果只显示TLS 1.0或1.1,说明版本确实过低。
方法二:命令行检查(服务器上执行)
使用curl模拟不同TLS握手:
curl --tlsv1.2 -I https://你的域名 2>/dev/null | grep HTTP
如果返回HTTP状态码(如HTTP/1.1 200 OK),说明服务器支持TLS 1.2。
如果报错 error:14077410...,则不支持。
类似检查TLS 1.3:
curl --tlsv1.3 -I https://你的域名 2>/dev/null | grep HTTP
两条都不通,基本可以确定版本过低。
升级方法:Nginx用户看这里
修改Nginx的SSL配置,文件通常在 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/你的站点.conf。
找到 server 块中 ssl_protocols 这一行,把旧值替换掉:
ssl_protocols TLSv1.2 TLSv1.3;
如果没有这行,手动添加上。
保存后测试配置:
nginx -t
没问题就重载:
systemctl reload nginx
如果你用的是宝塔面板,进“网站”->“设置”->“SSL”->“SSL协议”,勾选TLSv1.2和TLSv1.3即可。
Apache用户操作类似
编辑Apache的SSL配置文件(常见 /etc/httpd/conf.d/ssl.conf 或 /etc/apache2/sites-enabled/你的站点.conf),
找到或添加:
SSLProtocol +TLSv1.2 +TLSv1.3
注意:旧版Apache可能不支持TLS 1.3,至少确保有TLSv1.2。
然后检查语法:
apachectl configtest
无错后重载:
systemctl reload httpd # CentOS/RHEL
systemctl reload apache2 # Debian/Ubuntu
避坑指南:这些地方容易翻车
- 与旧客户端的兼容性:部分老旧手机或Windows XP不支持TLS 1.2,升级后可能访问不了。建议先在测试环境操作,确认业务能接受再上生产。
- 证书链不完整:升级TLS本身不涉及证书,但有些配置合并后会漏掉中间证书。可以用
openssl s_client -connect 你的域名:443 -tls1_2验证证书链。 - 缓存未刷新:修改配置后记得清一下浏览器缓存,否则检测结果还是旧的。
- CDN或反向代理:如果你的网站挂了Cloudflare、阿里云CDN等,需要在CDN后台也调整TLS版本。
验证升级是否成功
用之前检查时的curl命令再测一次:
curl --tlsv1.2 -I https://你的域名
curl --tlsv1.3 -I https://你的域名
两条都返回正常状态码就对了。
也可以再次打开SSL检测网站,观察“TLS版本”列是否包含TLS 1.2或1.3。
如果依然只显示TLS 1.0,检查nginx/apache是否真的重载成功,或者是否有其他代理层覆盖了你的配置。
按照上述步骤操作,你的服务器TLS版本过低问题就能解决。
以后新配置服务器时,记得一开始就只启用TLSv1.2和TLSv1.3,省去后续升级的麻烦。