子域名使用不同的 SSL 证书

子域名使用不同的 SSL 证书

由于我买不起通配符 SSL,因此我想为 m.mysite.com 购买另一个 SSL 证书,这样 mysite.com 和 www.mysite.com 将拥有与 m.mysite.com 不同的 SSL 证书

如果我在同一个服务器(同一个 IP)上托管 mysite.com 和 m.mysite.com,这会造成任何复杂情况吗?或者我应该在不同的 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;
    }
}

答案1

这取决于你使用的网络服务器。确保它支持信噪比服务器名称指示)(所有相关的网络服务器可能都是这种情况)或者使用像 nginx 或 haproxy 这样的反向代理来处理 SSL/TLS 连接并将流量转发到您的内部服务器。

答案2

如果您的服务器支持 SNI - 您将能够在单个 IP 地址上安装两个 SSL 证书。否则,您将需要通配符 SSL 证书,或者将子域移动到不同的帐户,为其分配不同的(与第一个 [主域] 帐户不同的)IP 地址并安装您的 SSL 证书。对于第二种情况 - 您还必须编辑 domain.com 的 DNS 区域,并更改子域的 A 记录以指向第二个帐户的新专用 IP 地址。

相关内容