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

Kubernetes中nginx ingress禁用TLS1.0/1.1的配置方案是否安全可用

配置有效性判断

你提供的ConfigMap配置本身符合ingress-nginx的TLS版本配置规范:ssl-protocols 是官方指定的TLS协议版本控制字段,设置为"TLSv1.2 TLSv1.3" 确实会直接禁用TLS 1.0、1.1版本的支持。
但必须满足一个前置条件:你的nginx-proxy ingress控制器启动参数中,--configmap 指向的配置项名称、命名空间,要和你要创建的这个ConfigMap完全一致。如果原有控制器已经绑定了其他ConfigMap,单独创建同名但不同命名空间的ConfigMap不会生效。

业务风险说明

新增该配置不会直接导致ingress服务崩溃,但存在两类可能的业务异常:

  • 老旧客户端用户无法访问:Windows XP自带IE、安卓4.4及以下系统内置浏览器、部分未升级的老旧爬虫/内部自动化工具默认不支持TLS 1.2及以上版本,配置生效后这类客户端的HTTPS请求会直接握手失败。
  • 原有配置丢失:如果当前集群中已经存在同名的nginx-proxy ConfigMap,直接套用你提供的配置会覆盖原有ConfigMap的所有内容,可能导致之前配置的限流、跨域、自定义Header等规则丢失,引发业务异常。

生产操作建议

  • 配置校验:先执行命令kubectl get deployment <你的nginx-proxy控制器部署名> -n <ingress所在命名空间> -o yaml | grep '\-\-configmap' 确认控制器绑定的ConfigMap路径,如果已有对应ConfigMap,执行kubectl get cm <配置名> -n <命名空间> -o yaml 导出原有配置,在原有data字段下新增ssl-protocols: "TLSv1.2 TLSv1.3" 配置,不要直接覆盖整个ConfigMap。
  • 前置验证:先在测试集群/灰度环境应用配置,使用openssl工具验证配置生效:
    # 验证TLS 1.0被禁用(返回握手失败)
    openssl s_client -connect 你的站点域名:443 -tls1
    # 验证TLS 1.1被禁用(返回握手失败)
    openssl s_client -connect 你的站点域名:443 -tls1_1
    # 验证TLS 1.2、1.3正常可用(返回握手成功及证书信息)
    openssl s_client -connect 你的站点域名:443 -tls1_2
    openssl s_client -connect 你的站点域名:443 -tls1_3
    
  • 风险前置排查:提前拉取近期站点的客户端访问日志,统计TLS 1.0/1.1的请求占比,如果还有大量存量请求,先面向对应用户推送客户端升级通知,再推进配置变更。
  • 生产变更:选择业务低峰期操作,变更后立即做站点可用性巡检,准备好回滚方案:如果出现大面积访问异常,直接删除ConfigMap中的ssl-protocols字段,ingress控制器会自动热重载回滚默认TLS配置,不会导致长期服务中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:27:02