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

ZAP Proxy在K8s环境中无法与HTTPS服务通信问题求助

ZAP Proxy在K8s部署后HTTPS服务访问504超时问题

当前配置信息

K8s运行命令

command: [ "zap.sh" ]
args: [ "-daemon", "-port", "9090",  "-config", "api.disablekey=true", "-config", "api.addrs.addr.name=.*", "-config", "api.addrs.addr.regex=true", "-config", "view.mode=attack","-host","0.0.0.0", "-config","network.localServers.mainProxy.behindNat=true","-config", "network.connection.timeOutInSecs=120" , "-config", "network.httpState.timeoutInSecs=120","-silent"]

Dockerfile

FROM softwaresecurityproject/zap-bare

ENV HUD=false
ENV API_DISABLEKEY=true
ENV ZAP_AUTO_UPDATE=false
ENV ZAP_PORT = 9090

EXPOSE 9090

问题现象

  • 访问HTTP服务完全正常;
  • 访问HTTPS服务https://my-service.com/v1/my-endpoint时返回HTTP 504错误,错误提示:

Failed to read https:https://my-service.com/v1/my-endpoint within 20 seconds, check to see if the site is available and if so consider adjusting ZAP's read time out in the Connection options panel.

注:已关闭HUD,因为需要同时兼容HTTP和HTTPS服务(HUD会强制将HTTP请求转为HTTPS)。

补充:直接在环境中执行curl https://my-service.com/v1/my-endpoint访问目标API时,无报错但也没有任何响应。

排查与解决建议

  1. 确认目标服务的可达性
    直接curl无响应说明目标服务本身可能存在性能问题,或者ZAP所在Pod与目标服务的网络连通性有问题。建议进入ZAP Pod内部执行curl测试,验证集群内到目标服务的网络是否通畅,以及服务能否正常返回响应。

  2. 检查ZAP超时配置是否生效
    错误提示显示超时时间为20秒,但你已在命令行设置120秒超时,说明配置可能未正确加载。可通过ZAP API查看当前生效的超时参数:

    curl http://<zap-service-ip>:9090/JSON/network/view/connectionTimeout/
    curl http://<zap-service-ip>:9090/JSON/network/view/httpStateTimeout/
    

    如果参数不符,尝试调整配置方式:比如在Dockerfile中用ZAP_OPTIONS环境变量统一传递所有配置参数,或检查命令行参数是否存在拼写错误。

  3. 排查HTTPS相关配置
    ZAP处理HTTPS请求时,可能存在证书信任问题,或目标服务需要特定代理设置。可尝试在ZAP中导入目标服务的根证书,或检查ZAP的代理模式是否适配目标服务的HTTPS配置。

  4. 检查K8s网络策略
    确认K8s集群的网络策略是否允许ZAP Pod访问目标HTTPS服务的443端口,避免因网络策略限制导致连通失败。

内容的提问来源于stack exchange,提问作者Sal-laS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:25:04