伺服器多站點多域名HTTPS實現

126雲發表於2021-03-03

假設有這樣一個場景,我們有多個站點(例如site1.,site2.xikunyun.com和site3.126vps.com)繫結到同一個IP:PORT,並區分不同的主機頭。我們為每一個SSL站點申請並安裝了證書。在瀏覽網站時,使用者仍看到證書不匹配的錯誤。

IIS

當一個https的請求到達IIS伺服器時,https請求為加密狀態,需要拿到相應的伺服器證書解密請求。由於每個站點對應的證書不同,伺服器需要透過請求中不同的主機頭來判斷需要用哪個證書解密,然而主機頭作為請求的一部分也被加密。最終IIS只好使用第一個繫結到該IP:PORT的站點證書解密請求,從而有可能造成對於其他站點的請求失敗而報錯。

解決方案

  • 第一種解決方案將每個https站點繫結到不同的埠。但是這樣的話客戶端瀏覽網頁時必須手動指定埠,例如 https://:444

  • 第二種解決方案是為每個站點分配一個獨立的ip,這樣衝突就解決了,甚至主機頭也不用新增了。

  • 第三種解決方案是使用通配證書。我們採用通配證書頒發給.,對於我們的示例中,應該採用頒發給.marei.com的證書,這樣任何訪問該domain的請求均可以透過該證書解密,證書匹配錯誤也就不復存在了。

  • 第四種解決方案是升級為IIS8,IIS8中新增的對於SNI(Server Name Indication)的支援,伺服器可以通請求中提取出相應的主機頭從而找到相應的證書。


  • Nginx

  • 開啟 Nginx 安裝目錄下 conf 目錄中開啟 nginx.conf 檔案,找到

  • server {
  • listen 443;
  • server_name domain1;
  • ssl on;
  • ssl_certificate 磁碟目錄/訂單號1.pem;
  • ssl_certificate_key 磁碟目錄/訂單號1.key;
  • ssl_session_timeout 5m;
  • ssl_protocols TLSv1TLSv1.1TLSv1.2;
  • ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
  • ssl_prefer_server_ciphers on;
  • location /{
  • root html;
  • index index.html index.htm;

在上述基礎上,再新增另一段配置


  1. server {
  2. listen 443;
  3. server_name dommain2;
  4. ssl on;
  5. ssl_certificate 磁碟目錄/訂單號2.pem;
  6. ssl_certificate_key 磁碟目錄/訂單號2.key;
  7. ssl_session_timeout 5m;
  8. ssl_protocols TLSv1TLSv1.1TLSv1.2;
  9. ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
  10. ssl_prefer_server_ciphers on;
  11. location /{
  12. root html;
  13. index index.html index.htm;

透過上述配置在Nginx中支援多個證書

Apache

  1. # Apache配置HTTPS虛擬主機共享443埠
  2. Listen443
  3. NameVirtualHost*:443
  4. <VirtualHost*:443>
  5. ServerName 
  6. SSLCertificateFile common.crt;
  7. SSLCertificateKeyFile common.key;
  8. SSLCertificateChainFile ca.crt
  9. </VirtualHost>
  10. #在上述基礎上,再新增另一段配置,實現第二個虛擬主SSL
  11. <VirtualHost*:443>
  12. ServerName 
  13. SSLCertificateFile common2.crt;
  14. SSLCertificateKeyFile common2.key;
  15. SSLCertificateChainFile ca2.crt
  16. </VirtualHost>


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957453/viewspace-2760813/,如需轉載,請註明出處,否則將追究法律責任。

相關文章