On 16-07-2010 15:31, Richard Buskirk wrote:
I sent this situation off to the help team but maybe it is either that stupid 
or that hard.

I have installed 2 SSL Certs on my server.
I am using a naming convention for apache configuration for each cert.

Server: Windows server 2008, Apache/2.2.14 (Win32) mod_ssl/2.2.14 
OpenSSL/0.9.8k PHP/5.2.11

httpd-vhost.conf
___________________________
NameVirtualHost *:443
<VirtualHost *:443>
     SSLEngine on
     SSLCertificateFile "C:\\certs\\ServerA.crt"
     SSLCertificateKeyFile "C:\\certs\\ ServerA.key"
     ServerName www. ServerA.com
     SSLOptions StrictRequire
     SSLProtocol all -SSLv2
     ServerAdmin notice@ ServerA.com
     DocumentRoot "C:\\Program Files (x86)\\Apache Software 
Foundation\\Apache2.2\\www\\html\\ ServerA "
     ErrorLog "C:\\Program Files (x86)\\Apache Software 
Foundation\\Apache2.2\\logs\\ssl-access- ServerA.log"
     CustomLog "logs/access-ssl-www. ServerA.com" common
</VirtualHost>


<VirtualHost *:443>
     SSLEngine on
     SSLCertificateFile "C:\\certs\\ ServerB.crt"
     SSLCertificateKeyFile "C:\\certs\\ ServerB.key"
     ServerName www. ServerB.com
     SSLOptions StrictRequire
     SSLProtocol all -SSLv2
     ServerAdmin notice@ ServerB.com
     DocumentRoot "C:\\Program Files (x86)\\Apache Software 
Foundation\\Apache2.2\\www\\html\\ ServerB "
     ErrorLog "C:\\Program Files (x86)\\Apache Software 
Foundation\\Apache2.2\\logs\\ssl-access- ServerB.log"
     CustomLog "logs/access-ssl-www. ServerB.com" common
</VirtualHost>


Here is where my senerio goes very weird.  A computer with windows 7 browses to 
both location and everything is perfect.
A computer with windows XP browses to the siteA no issue. But if they go to 
siteB, the cert for Site A is used on SiteB's load every time no matter what 
computer they are on.
The siteB does show the proper site but the cert is the wrong cert. This fails 
in Firefox, IE, Safari, Google Chrome on windows XP.



Any suggestions ?
Does this make sense what I am saying?

It looks like you are trying to serve up two different certificates on the same IP address (all addresses of your sever=*) and port (443), depending on the DNS name the browser used to locate the server.

This is a very recent extension to the SSL/TLS protocols and is probably only implemented by a few very new browsers, such as the IE version in Windows 7. Older browsers not implementing this recent
standard just have no way of telling the server which certificate they
want, and so the server uses the first one in its configuration.

There are two standard solutions to this problem (until most of the
worlds SSL clients implement the extensions):

A) Give your server two IP addresses (such as 10.0.0.1 and 10.0.0.2),
make www.ServerA.com point to 10.0.0.1 and www.ServerB.com point to
10.0.0.2.  Finally, in your Apache config, specify those addresses in
place of the * for the different configurations.
  Benefit: Traditional.  Problem: Uses more IPv4 addresses.

B) Get the CA to issue a single certificate valid for both server names
(e.g. by specifying both names in various certificate fields). Then tell Apache to do normal virtual hosting but with a single SSL certificate.
   Benefit: Uses only one IPv4 address per server.
   Problem: Not all combinations of server names can be combined in
  a single certificate if compatibility with many browser
  implementations is needed.  Others on this list can probabably say
  which combinations are technically possible, and how.



______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [email protected]
Automated List Manager                           [email protected]

Reply via email to