bosnadev

№ 4 · 2014-12-04 · 1 min · server

Virtual hosts overlap on 443, the first has precedence

Fixing the Apache 2 warning that virtual hosts overlap on port 443 after enabling SSL on several domains: add NameVirtualHost *:443 to ports.conf.

written before the past year · entry 4 of 31 · 10 in the past year

This article is out of date
Written for Apache 2.2 in 2014. Since Apache 2.4, NameVirtualHost has no effect.

Apache2 LogoToday I got strange error on my production server when I tried to enable SSL on three domains. Since I use ISPConfig as hosting control panel I assumed it will work without problems. But I was wrong. I did little bit of research on this topic, and I found a simple solution.

If you look at /etc/apache2/ports.conf file, you will see:

/etc/apache2/ports.confapache · 2 lines
NameVirtualHost *:80Listen 80

This way Apache knows which virtual host to serve based on the different host names. And it works fine for *:80 port. But, for 443 port it’s disabled, so you need to update ports.conf as follows to make it work:

/etc/apache2/ports.confapache · 4 lines
<IfModule mod_ssl.c>NameVirtualHost *:443Listen 443</IfModule>

Make sure to restart Apache and it will work fine.

I hope this tip will save you some time.

Resources

More about Apache2 virtual hosts you can learn here. Other useful links I found while I was looking for solution:

Apache error: default virtualhost overlap on port 443
Virtual hosts overlap on 443, first has precedence
VirtualHost Overlap on Port 443

Related

Apache2 mod_fcgid: HTTP request length exceeds MaxRequestLenserverSSH Authentication With Keys Instead PasswordsserverInstalling Icinga2 (fork of Nagios) on Debian 7 (Wheezy)server