Port 4443 is a common alternate HTTPS port used when port 443 is occupied by another service. Kubernetes API servers, development environments, and application proxies frequently use port 4443. Pharos, Kubernetes CNI plugins, and some ingress controllers default to port 4443 for internal HTTPS traffic.
Port Number
4443
Protocol
TCP
Service
HTTPS (non-standard)
Range
IANA Registered (1024–49151)
Check what's serving on 4443 locally
curl -sk https://localhost:4443/ | head -5Identify the process bound to port 4443
ss -tlnp | grep 4443Find Kubernetes webhooks using port 4443
kubectl get mutatingwebhookconfigurations -o jsonpath='{range .items[*]}{.metadata.name}: {.webhooks[*].clientConfig.service.port}{"
"}{end}'Identify service and certificate on 4443
nmap -sV -p 4443 --script ssl-cert targetcurl https://host:4443/healthz
openssl s_client -connect host:4443 -servername service.namespace.svc
kubectl get --raw /apis --server=https://host:4443Port 4443 emerged organically as a secondary HTTPS port when 443 is already occupied by the main web server or load balancer. Kubernetes ecosystem adopted it heavily: many admission controllers and internal services default to 4443 to avoid conflicting with the API server (6443) and ingress (443). Rancher chose 4443 for its management UI. There is no IANA registration for 4443 – it's a de facto convention.
Why do Kubernetes webhooks use 4443 instead of 443?
Convention and conflict avoidance. Admission webhooks run as Services inside the cluster. Port 443 would conflict with the ingress controller or other services. Port 4443 became the community default (cert-manager, OPA Gatekeeper, Kyverno all use it). The webhook configuration tells the API server which port to call. Security note: the API server authenticates to webhooks via the webhook's CA bundle, not just the port.