[英]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.com
和www.xyz.com
托管在兩個不同的IP地址(也許是同一台計算機)上,在這種情況下,您可以為每個IP地址配置不同的證書。
如果兩個名稱只能使用一個IP地址(和端口),則要使用兩個不同的證書,則需要使用服務器名稱指示(SNI)擴展,該擴展是相對較新的(並且可能並非所有瀏覽器都支持,但似乎可以與最近的瀏覽器一起使用)。
如果不能使用SNI,則需要同時對www.abc.com
和www.xyz.com
都有效的同一證書,這可以通過將兩個DNS條目放在“主題替代項”中來實現。如果兩個主機的模式都合適,則可以使用名稱擴展或通配符(請注意,如果通配符用於兩個不同的域而不是子域,則通配符不太可能被接受)。 這兩個選項可能比帶有商業CA的兩個不同證書更昂貴。
我最終購買了兩個域的單個多域證書(UCC)。 並修改了nginx配置,以將兩個站點定向到同一Apache服務器。
因為我在Apache前面安裝了nginx,所以不需要更改http.conf配置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.