文档首页> 技术教程> 关闭旧 TLS 协议:SSL 评分从 C 到 A

关闭旧 TLS 协议:SSL 评分从 C 到 A

发布时间:2026-02-03 09:19        更新时间:2026-02-03 14:57
在线检测把 SSL 评到 C 的站点,八成还开着 TLS 1.0 和 TLS 1.1。TLS(传输层安全协议)的 1.0、1.1 两个版本已确认存在安全弱点,主流浏览器从 2020 年起陆续停止支持,继续开着只会拉低评分,不会带来任何真实用户。 先看流量占比再动手 改配置之前,先搞清楚有没有人在用旧协议,凭感觉下结论最不可取,让数据说话。Nginx 日志里加一个变量就能统计:log_format 里写上 $ssl_protocol,跑一两周后聚合一下,TLSv1 和 TLSv1.1 的请求占比一目了然。占比接近零(绝大多数站点都是这个结果),就可以放心关。 Nginx 配置改法 在 http 或 server 块改几行: ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_session_cache shared:SSL:10m; TLS 1.3 的加密套件不受 ssl_ciphers 控制,会自动启用,这条清单只约束 TLS 1.2 的握手;最后一行开会话复用,能摊薄重复访客的握手开销,这几行对单站点和一机多站的公共配置都成立。改完先 nginx -t 检查语法,再 reload。 验证关闭效果 本机用 openssl 强行按旧协议握手,握手失败才是正确结果: openssl s_client -connect example.com:443 -tls1_1 返回 handshake failure 之类错误,说明 1.1 已经关掉;把参数换成 -tls1_2,应能正常握手并看到证书链。想看全貌可以用 nmap 扫一遍:nmap --script ssl-enum-ciphers -p 443 example.com,输出会列出每个协议版本和套件。再用在线 SSL 检测工具跑一遍评分,协议项、套件项通常能到 A 附近;整体分还不高的话,多半是证书链不完整,把中间证书补进 fullchain 即可。链不完整在桌面浏览器上往往正常,部分移动端和 API 对接方却会直接报错,这个坑藏得比较深,值得多验一遍。 兼容性边界 关掉旧协议后,老系统的设备会连不上:Windows XP 时代的浏览器、安卓 4.x 老机型、个别工业设备的嵌入式客户端。面向公众的站点按上一节的占比数据决策,确认没有值得照顾的真实用户再动手。评分不是目的,A 评分加上零兼容性事故,才是这次改动的完整验收标准,改动前后各跑一遍检测工具留档,日后有据可查。