2010-08-30 53 views
0

我會問用一個例子 - 我有一個設置,nginx的,Django的,阿帕奇(nginx的轉發SSL請求Apache)的阿帕奇兩個URL和兩個不同的SSL證書

我有網站https://www.xyz.com具有SSL與其關聯的證書以及客戶端在連接時使用它。 比方說,我有另外一個域名www.abc.com,我想將其分配給同一臺服務器xyz.com

也就是說,當用戶在瀏覽器中https://www.abc.com/它應該表現出同樣的網站爲https://www.xyz.com/

現在要實現這一點,我需要購買另一個SSL證書嗎?如果我這樣做,我將如何更改http.conf文件以將此新證書用於另一個URL?

還有其他方法可以使用嗎?

回答

1

我最終購買了兩個域名的單個多域名證書(UCC)。 並修改了nginx配置以將兩個站點導向到同一個Apache服務器。

由於我在Apache前面有nginx,所以我不需要改變http.conf配置。

1

只要www.abc.com和www.xyz.com有不同的IP地址,您可以從相同的httpd實例託管它們。您將需要兩個證書(除非兩個都是通用域的子域,並且您將獲得通配符證書)。將它們設置爲兩個具有相同內容的基於IP的虛擬主機。

請參閱http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#vhosts爲什麼。

<VirtualHost 127.0.0.1:443> 
    SSLEngine on 

    SSLCertificateFile  /etc/ssl/www.abc.com.crt 
    SSLCertificateKeyFile /etc/ssl/www.abc.com.key 
    # etc 
</VirtualHost> 
<VirtualHost 127.0.0.2:443> 
    SSLEngine on 

    SSLCertificateFile  /etc/ssl/www.xyz.com.crt 
    SSLCertificateKeyFile /etc/ssl/www.xyz.com.key 
    # etc 
</VirtualHost> 
+0

嘿感謝p00ya,如果www.abc.com和www.xyz怎麼辦。com有 相同的IP地址?我已經在服務器上安裝了www.xyz.com,並且我將把www.abc.com註冊到相同的IP地址,以便爲同一站點提供兩個URL。 – Sujit 2010-08-30 16:04:49

+0

您可以嘗試使用SNI作爲Turbo J的回答,但許多瀏覽器不支持此TLS擴展名(例如Windows XP下的Internet Explorer)!如果他們真的是同一個網站,你有沒有考慮過發佈HTTP重定向? – p00ya 2010-08-31 01:02:42

1

您是否真的試圖問Google?我的第一個點擊是:http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
在apache維基上。

如果您有多個IP地址,我建議使用基於IP地址的SSL而不是基於名稱的,因爲老客戶端(XP上的IE)不支持SNI。

1

(我複製/粘貼我自己的答案this question略加修改的版本。什麼也沒有在現有的答案被提出至今使用多個主題備用名稱。)

易於方法是能夠在兩個不同的IP地址(可能是同一臺機器)上託管www.abc.comwww.xyz.com,在這種情況下,您可以爲每個IP地址配置不同的證書。

如果您不得不爲這兩個名稱使用單個IP地址(和端口),如果您要使用兩個不同的證書,則需要使用Server Name Indication (SNI)擴展名,這是相對較新的(可能不會得到所有瀏覽器的支持,但它似乎與最近的一起工作)。

如果你不能使用SNI,你需要同一個證書同時對www.abc.comwww.xyz.com有效,這可以通過將兩個DNS條目放在主題備用名稱擴展中來實現,或者如果這兩個主機的模式是合適的(可能通過使用通配符)(注意,如果通配符針對兩個不同的域而不是子域,則通配符不太可接受)。這兩個選項可能比兩個不同的證書(商業CA)更昂貴。