After recently upgrading Apache2 to version 2.2.31 I found a strange behaviour in SSL VirtualHost setup.

A few of the website I'm hosting were showing the certificate for the default host even if the client was Server Name Identification aware, and this happened only with a few of them. This shows as the common Firefox's/Chrome's passport-warning about you being possibly scammed if you're browsing your home banking, but that simply was not the case.

To be clear, if server host.hostingdomain.org has its own SSL, attempting to access https://www.hostedsite.org reports certificate for host.hostingdomain.org, but a few https://www.hostedsite.me reported the correct certificate.

All sites are hosted on the same IP address, on port 443. The truth is that VirtualHosting works on the HTTP side and redirects SNI-aware clients to SSL automatically, so it's backward compatible with SNI-unaware clients.

Examining error logs for the offending VirtualHosts shown the following text

[Tue Dec 25 16:02:45 2012] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/path/to/www.site.org.conf:20)

and in fact the vhost was correctly configured with SSLCertificateFile.

The question is obvious: how to fix that?

3 Answers 3


It happens that it could be a bug in the most recent version of Apache.

Solution 1: downgrade to the latest stable

Solution 2: edit listen.conf

Replace Listen *:443 (or Listen 443 according to your setup) with Listen *:443 http


  • 1
    Thank you for pointing this out! You saved me a lot of wondering around... I wonder why apache is making life harder!?
    – tftd
    Commented Mar 18, 2013 at 22:20
  • 2
    Solution 2: should that be httpd.conf not listen.conf
    – zzapper
    Commented Mar 17, 2016 at 15:00
  • 1
    Note, this happened to me this morning... ended up I needed to add that "http" to the listen lin in /etc/httpd/conf.d/ssl.conf - oh, I did not have to downgrade...
    – Scott
    Commented Jan 4, 2018 at 13:49
  • Solutions are alternate, you don't need to downgrade if adding listen.conf Commented Jan 4, 2018 at 14:29

I had the same exact problem, and what worked for me was unbelievably simple

edit /etc/apache2/ports.conf (for ubuntu, or httpd.conf )

change "Listen 443" to "Listen 443 http" under ssl_module

  • This is already in the accepted answer.
    – Sven
    Commented Jun 28, 2015 at 8:13
  • 2
    The accepted answer seems outdated. This answer was more useful and accurate. +1
    – pmagunia
    Commented Mar 26, 2016 at 1:42
  • This answer is applicable for apache on my apache2.4 lamp stack, ubuntu. Other answer is "listen.conf" - should be ports.conf
    – Nick
    Commented Jun 26, 2016 at 2:40

Another solution for this is to ensure that all of your :443 vhosts include the TLS configuration.

This problem was recently introduced in Debian wheezy and I got the solution from http://blog.noizeramp.com/2010/10/03/apache-2-and-ssl-configuration/.

  • This was my problem. I duplicated a vhost in my httpd.conf but failed to include the lines specifying the TLS configuration. Adding the various TLS settings back in (SSLEngine, SSLCipherSuite, SSLCertificateFile, and SSLCertificateKeyFile) fixed the problem.
    – rinogo
    Commented Oct 12, 2018 at 21:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .