国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

幫助中心 >  技術知識庫 >  SSL證書問題 >  常見問題 >  服務器多站點多域名HTTPS實現(xiàn)

服務器多站點多域名HTTPS實現(xiàn)

2017-11-16 18:44:07 2232

假設有這樣一個場景,我們有多個站點(例如site1.marei.com,site2.marei.com和site3.marei.com)綁定到同一個IP:PORT,并區(qū)分不同的主機頭。我們?yōu)槊恳粋€SSL站點申請并安裝了證書。在瀏覽網(wǎng)站時,用戶仍看到證書不匹配的錯誤。

1. IIS中實現(xiàn)

  • 問題原因

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

  • 解決方案

    1. 第一種解決方案將每個https站點綁定到不同的端口。但是這樣的話客戶端瀏覽網(wǎng)頁時必須手動指定端口,例如 https://site.domain.com:444

    2. 第二種解決方案是為每個站點分配一個獨立的ip,這樣沖突就解決了,甚至主機頭也不用添加了。

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

    4. 第四種解決方案是升級為IIS8,IIS8中添加的對于SNI(Server Name Indication)的支持,服務器可以通請求中提取出相應的主機頭從而找到相應的證書。

      SNI開啟方式請參考http://www.tjdsmy.cn/learn/get-started/whats-new-in-iis-8/iis-80-server-name-indication-sni-ssl-scalability

2. Nginx中實現(xiàn)

打開 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 TLSv1 TLSv1.1 TLSv1.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;

        }

    }

在上述基礎上,再添加另一段配置

    server {

        listen 443;

        server_name dommain2;    #第二個域名

        ssl on;

        ssl_certificate 磁盤目錄/訂單號2.pem;

        ssl_certificate_key 磁盤目錄/訂單號2.key;

        ssl_session_timeout 5m;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.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;

        }

    }


通過上述配置在Nginx中支持多個證書

3. Apache配置HTTPS虛擬主機共享443端口

    Listen 443

    NameVirtualHost *:443

   

      ……

    ServerName www.tjdsmy.cn

    SSLCertificateFile     common.crt;

    SSLCertificateKeyFile  common.key;

    SSLCertificateChainFile  ca.crt

      ……


      ……

    ServerName www.tjdsmy.cn

    SSLCertificateFile     common2.crt;

    SSLCertificateKeyFile  common2.key;

    SSLCertificateChainFile  ca2.crt

      ……


提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: