You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx配置仅允许TLSv1.2却仍支持TLS1.1连接求助

问题排查与修复方案

针对你遇到的Nginx已配置禁用TLS 1.0/1.1但实际仍可连接、SSLLabs评分为B的问题,按以下步骤排查修复:

1. 确认Nginx生效配置

容器环境中常出现配置未正确加载的情况,直接查看Nginx实际运行的全部配置:

  • 进入容器执行:nginx -T(大写T会输出所有生效配置)
  • 全局搜索ssl_protocols,确认**所有server块(包括默认server)**的配置均为TLSv1.2 TLSv1.3,没有任何server块遗漏或显式启用了旧协议。

2. 检查AWS Lightsail容器服务的TLS终止层

Lightsail容器服务自带负载均衡,可能是负载均衡在对外处理TLS连接,而非你的Nginx容器:

  • 登录Lightsail控制台,找到对应容器服务的负载均衡配置
  • 确认负载均衡的TLS协议版本仅开启TLS 1.2和TLS 1.3,禁用TLS 1.0/1.1。如果负载均衡做了TLS终止,Nginx内部的TLS配置不会影响对外的协议支持。

3. 适配OpenSSL 3.0的配置调整

OpenSSL 3.0对旧协议和套件的处理逻辑有变化,补充以下配置确保生效:

  • 在http或server块中指定仅支持TLS1.2+的密码套件:
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers on;
    
  • 确保ssl_protocols明确写为TLSv1.2 TLSv1.3,不要留空或继承可能有问题的默认值。

4. 确保容器配置更新生效

Docker容器部署时容易因缓存或挂载问题导致旧配置残留:

  • 重新构建镜像时,清理缓存(docker build --no-cache),确保最新配置文件被复制到镜像中。
  • 直接重建容器实例,不要仅依赖nginx -s reload热重载,避免配置未完全生效。

5. 验证修复结果

修改完成后,重新测试:

  • 执行openssl s_client -connect www.mydomain.com:443 -tls1_1,正常应返回连接失败。
  • 再次提交SSLLabs测试,确认TLS 1.0/1.1已被禁用,评分提升。

内容的提问来源于stack exchange,提问作者Yoram Gronich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 09:15:08