我使用以下命令在 k8s 中将 zap 代理作为服务运行:
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 错误,确切的错误是:
无法在 20 秒内读取
,请检查该站点是否可用,如果可用,请考虑在连接选项面板中调整 ZAP 的读取超时。https:https://my-service.com/v1/my-endpoint
请注意,由于我需要与 http 和 https 协议进行通信,我决定关闭 HUD ,因为它将 http 协议转换为 https。
更新:当我尝试使用下面的curl命令访问目标api时:
curl https://my-service.com/v1/my-endpoint
我没有收到任何错误,也没有响应
您遇到的是网络问题,而不是 ZAP 问题。 如果像curl这样的其他程序无法访问您的目标站点,那么这不仅仅是ZAP,而是一个较低级别的问题。