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

Kubernetes集群下NGINX代理Kiwi TCMS出现SSL警告如何隐藏

问题根因

Kiwi TCMS的SSL连接警告基于服务端接收到的请求协议判断,你当前的架构中外部HTTPS流量在Nginx侧卸载证书后,内部通过HTTP协议转发到Kiwi的80端口,Kiwi识别到的请求协议为HTTP,因此触发警告,和外部实际是否加密无关。

以下是两种无需修改源代码、无需重新构建镜像的解决方案:

方案1:配置代理头+信任代理环境变量(推荐,无副作用)

该方案是Kiwi TCMS官方支持的标准反向代理SSL适配方案:

  • 调整你的Nginx(或Nginx Ingress)配置,新增转发头,把客户端真实访问协议传递给Kiwi:
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host;
    
    如果你使用K8s原生Nginx Ingress,可直接给Ingress资源添加如下注解实现:
    annotations:
      nginx.ingress.kubernetes.io/use-forwarded-headers: "true"
    
  • 修改Kiwi TCMS的Deployment配置,新增两个环境变量,开启代理头信任并关联SSL标识:
    env:
    - name: KIWI_USE_X_FORWARDED_HOST
      value: "True"
    - name: KIWI_SECURE_PROXY_SSL_HEADER
      value: "HTTP_X_FORWARDED_PROTO,https"
    
    重新apply Deployment生效后,Kiwi会自动识别到用户实际使用HTTPS访问,警告会自动消失。

方案2:Nginx注入样式隐藏警告(应急方案)

如果暂时无法调整Kiwi的部署配置,可通过Nginx的内容替换功能在返回页面中注入CSS直接隐藏警告元素:

  • 在Nginx对应路由的location配置段添加如下规则:
    sub_filter_types text/html;
    sub_filter_once on;
    sub_filter '</head>' '<style>.alert-warning:has(> a[href*="ssl"]) { display: none !important; }</style></head>';
    
    如果使用Nginx Ingress,可通过nginx.ingress.kubernetes.io/configuration-snippet注解注入上述配置即可生效。

两种方案均不会修改Kiwi TCMS的原有功能,仅调整流量链路配置即可实现需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:45:03