Description:
We are deploying ZAP 2.16 as a Docker container on Kubernetes behind Istio. While the pod is running, we are unable to access the ZAP UI via Istio Ingress, and remote scans fail with a Connection refused error.
Environment:
ZAP version: 2.16
Deployment: Docker container in Kubernetes
Ingress: Istio Gateway with TLS termination
ZAP mode: Daemon (zap.sh -daemon -host 0.0.0.0 -port 8080
-config hud.enabled=false
-config api.disablekey=true
-config api.addrs.addr.name=.*
-config api.addrs.addr.scheme=https
-config api.addrs.addr.port=443
-api.addrs.addr.regex=true
-config callhome.disable=true
-config api.cors.enabled=true
-config api.cors.allowOrigin=*
Target URL for API calls: https://zap-nonprod.mydomain.com/
Browser → Istio Ingress (TLS termination) → ZAP (receives HTTP traffic)
Observed Behavior / Logs:
92 [ZAP-daemon] INFO org.zaproxy.addon.network.ExtensionNetwork - ZAP is now listening on 0.0.0.0:8080 ... Connect to http://zap-nonprod.mydomain.com:80 [...] failed: Connection refused
ZAP is listening on 0.0.0.0:8080 inside the pod.
Internal ZAP client tries to connect to port 80 (not exposed).
UI access via Istio Ingress fails, likely due to port mismatch or missing Istio routing to port 8080.
Zap Log:
logs-from-dop-zap-service-in-dop-zap-service-57df76666c-nc64k.log
Hope this helps!