Fix XAMPP Apache Duplicate Listen 443 Errors

The Apache error “Cannot define multiple Listeners on the same IP:port” means its loaded configuration declares the same address and port more than once. This is different from another program already owning port 443. Test the effective configuration before changing certificates or virtual hosts.

Last updated: October 11, 2026.

C:\xampp\apache\bin\httpd.exe -t
C:\xampp\apache\bin\httpd.exe -S

findstr /S /N /I "Listen 443" C:\xampp\apache\conf\*.conf
netstat -ano | findstr ":443"

The syntax test identifies the file and line that Apache rejects. The search finds repeated directives in the main configuration and included files. The final command checks whether a different process owns the port; use Task Manager or tasklist /FI "PID eq 1234" to identify that PID.

Keep one listener and one or more virtual hosts

Apache’s address and port binding documentation explains that Listen controls which endpoints the server accepts. XAMPP commonly loads an SSL file that already contains Listen 443. Adding another identical directive to httpd.conf produces AH00526. Keep a single effective listener for that endpoint.

You can still define multiple name-based <VirtualHost *:443> blocks. They share the listener and are selected by hostname. Do not remove the Include for the SSL configuration merely to silence the error; confirm which file should own the directive.

Separate a duplicate directive from a port conflict

If httpd.exe -t succeeds but Apache reports that the address is already in use, another process may own port 443. Stop or reconfigure that service, or choose a different local HTTPS port and update the matching virtual host and URL. Apache’s SSL configuration guide shows the normal relationship between Listen 443 and <VirtualHost *:443>.

Back up both configuration files before editing. When using a self-signed local certificate, trust only the development certificate you created; do not disable browser certificate checks or reuse that key on a public server.

After every edit, rerun the syntax test before restarting Apache. Continue with fixing HTTPS virtual-host mismatches, configuring PHP locally, and fixing local document-root errors.

Related Web Cheat Sheet guides

Sergey Kornilov

Sergey Kornilov