Apache 2类型SSl使用VirtualHosts

问题描述:

我有2个不同的应用程序。Apache 2类型SSl使用VirtualHosts

1)tools.helpme.com需要用户的客户端证书!

SSLCACertificateFile /usr/local/etc/apache22/certs/cacert.pem 
SSLCertificateKeyFile /usr/local/etc/apache22/certs/server.key 
SSLCertificateFile /usr/local/etc/apache22/certs/server.crt 
SSLCertificateChainFile /usr/local/etc/apache22/certs/server.crt 
SSLVerifyClient require 

2)apps.helpme.com要求基本的SSL仅从服务器!

SSLCACertificateFile /usr/local/etc/apache22/certs/cacert.pem 
SSLCertificateKeyFile /usr/local/etc/apache22/certs/server.key 
SSLCertificateFile /usr/local/etc/apache22/certs/server.crt 
SSLCertificateChainFile /usr/local/etc/apache22/certs/server.crt 
SSLVerifyClient none 

我有他们每个人都独立工作 - 这是完美的。

但是,我不能让他们两个一起运行,他们在不同的VirtualHosts - 基于名称的托管。

如果我尝试将它们两个都运行在一起,它似乎(2)需要优先选择和工作,但(1)获得GATEWAY_TIMEOUT! 该virtaul主机的错误日志说:重新协商握手失败:不被客户端接受!?

您需要两个不同IP地址上的站点,因为在发送HOST http标头之前会发生SSL握手。您可以使用相同的IP在不同的端口号上运行,但这对两种不同的Web服务无效?

+0

谢谢你。 经过调查后,似乎很常见,我可以使用SNI - 如果openssl,apache和浏览器支持它(不在我的案例中)。 看起来像我将不得不建立一个单独的服务器,os为这两个应用程序使用相同的SSL。 – Mark 2010-08-30 13:14:44