2010-08-26 34 views
0

我有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主機的錯誤日誌說:重新協商握手失敗:不被客戶端接受!?

回答

2

您需要兩個不同IP地址上的站點,因爲在發送HOST http標頭之前會發生SSL握手。您可以使用相同的IP在不同的端口號上運行,但這對兩種不同的Web服務無效?

+0

謝謝你。 經過調查後,似乎很常見,我可以使用SNI - 如果openssl,apache和瀏覽器支持它(不在我的案例中)。 看起來像我將不得不建立一個單獨的服務器,os爲這兩個應用程序使用相同的SSL。 – Mark 2010-08-30 13:14:44