簡體   English   中英

具有兩個URL和兩個不同的SSL證書的Apache

[英]Apache with two urls and two different SSL certificates

我將舉一個例子來問這個問題-我有一個設置,nginx,django,apache(nginx將ssl請求轉發給apache)

我有https://www.xyz.com網站,該網站具有與其相關聯的ssl證書,客戶端在連接時會使用它。 可以說,我有另一個域名www.abc.com,我想將其分配給xyz.com所在的服務器。

那就是當用戶在瀏覽器https://www.abc.com/中鍵入時,它應該顯示與https://www.xyz.com/相同的網站。

現在要實現此目的,我是否需要購買另一個ssl證書? 如果可以,如何更改http.conf文件以將該新證書用於另一個URL?

還是我可以使用其他方法?

只要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>

您真的嘗試過問Google嗎? 我的第一批熱門歌曲之一是: http : //wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
在apache Wiki上。

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

(我正在復制/粘貼我對此問題的答案的稍作修改的版本。到目前為止,現有答案中尚未建議使用多個主題替代名稱。)

一種簡單的方法是能夠將www.abc.comwww.xyz.com托管在兩個不同的IP地址(也許是同一台計算機)上,在這種情況下,您可以為每個IP地址配置不同的證書。

如果兩個名稱只能使用一個IP地址(和端口),則要使用兩個不同的證書,則需要使用服務器名稱指示(SNI)擴展,該擴展是相對較新的(並且可能並非所有瀏覽器都支持,但似乎可以與最近的瀏覽器一起使用)。

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

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

因為我在Apache前面安裝了nginx,所以不需要更改http.conf配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM