I have set up a number of Virtual Hosts all using SSL. Everything worked fine. Then I needed to add SSL Client Authentication to one of them (let's call it the SVN host). After enabling client certificates for the SVN host, the host stopped working, instead the default virtual host would be used instead (which means that an un-matching server certificate would be provided, so that neither access to the secure host, nor client authentication would work).
Here's the virtual host configuration I'm using:
<VirtualHost *:443> ServerName svn.anydomain.com SSLEngine on SSLOptions +StrictRequire SSLProtocol -all +TLSv1 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!SSLv3:RC4+RSA:+HIGH:+MEDIUM SSLCertificateFile /etc/certs/svn.crt SSLCertificateKeyFile /etc/certs/svn.key SSLCertificateChainFile /etc/certs/starcom/sub.class1.server.ca.pem SSLCACertificateFile /etc/certs/cacert.crt SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown SSLVerifyClient require SSLVerifyDepth 2 SSLUserName SSL_CLIENT_S_DN_CN <Location /path0> DAV svn SSLRequireSSL SVNPath /var/svn/path0 #Require valid-user </Location> <Location /path1> DAV svn SSLRequireSSL SVNPath /var/svn/path1 #Require valid-user </Location> </VirtualHost>
Also, I seem to have this problem on Mac OS X only. I am able to access the host from Windows 8 with no sweat. Basically, on my Mac I can get it to work only with these options in curl (sometimes, not consistently)
curl -v -v -v -1 -k --cacert Documents/Certs/CACert.pem --cert Documents/Certs/ClientCert.pem https://svn.anydomain.com/path1
I suspect it may be a client issue, or a combination of client/Apache issues. Any ideas?