Ssl

子域的不同 ssl 證書

  • March 2, 2016

由於我買不起萬用字元 ssl,我想為 m.mysite.com 購買另一個 ssl 證書,因此 mysite.com 和 www.mysite.com 將擁有與 m.mysite.com 不同的 ssl 證書

如果我將 mysite.com 和 m.mysite.com 都託管在同一台伺服器(相同的 ip)上,或者我應該在不同的 ip 上託管 m.mysite.com 以使 ssl 正常工作,這會造成任何復雜性嗎?

這是我用來接受 403 埠請求的伺服器塊:

#
# SITE SSL
#
server {

   listen       443 ssl;

   ssl_certificate /srv/ssl/mysite.com.crt;
   ssl_certificate_key /srv/ssl/mysite.com.key;

   #enables all versions of TLS, but not SSLv2 or 3 which are weak, deprecated.
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

   #Disables all weak ciphers
   ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

   ssl_prefer_server_ciphers on;

   server_name mysite.com www.mysite.com;
   error_log /var/www/mysite.com/public_html/error.log error;
   access_log off;

   location / {
       root   /var/www/mysite.com/public_html;
       index index.php  index.html index.htm;
       try_files $uri $uri/ /index.php;
   }

   error_page  404              /404.html;
   location = /404.html {
       root   /var/www/mysite.com/public_html;
   }

   error_page   500 502 503 504  /50x.html;
   location = /50x.html {
       root   /var/www/mysite.com/public_html;
   }

   # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
   #
   location ~ \.php$ {
       root           /var/www/mysite.com/public_html;
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
       fastcgi_param   HTTPS               on;
       fastcgi_param   HTTP_SCHEME         https;
       include        fastcgi_params;
       try_files  $uri =404;
   }
}

這取決於您使用的網路伺服器。確保它支持SNI伺服器名稱指示)(可能所有相關的網路伺服器都是這種情況)或使用反向代理(如 nginx 或 haproxy)來處理 SSL/TLS 連接並將流量轉發到您的內部伺服器。

如果您的伺服器支持 SNI - 您將能夠在單個 IP 地址上安裝兩個 SSL 證書。否則,您將需要萬用字元 SSL 證書,或將子域移動到不同的帳戶,分配不同的(不同於第一個

$$ main domain $$帳戶)的 IP 地址並安裝您的 SSL 證書。對於第二種情況 - 您還必須編輯 domain.com 的 DNS 區域,並將 subdomani 的 A 記錄更改為指向第二個帳戶的新專用 IP 地址。

引用自:https://serverfault.com/questions/761003