我刚购买了通配符SSL证书,可以让我访问动态子域。我可以使用我的配置访问以下域名:
http://example.co/转到 - > https://example.co/
因此,我强制所有HTTP转换为HTTPS并删除www
。
我的问题是我有动态子域,允许用户拥有他们想要的任何子域(https://user1.example.co,https://user2.example.co,https://user3.example.co)。
我的问题是,当用户访问http://www.user1.example.co/或https://www.user1.example.co/时,我会收到以下信息:
NET::ERR_CERT_COMMON_NAME_INVALID
我的配置:
server {
server_name www.example.co;
return 301 $scheme://example.co$request_uri;
}
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/blah;
ssl_certificate_key /etc/nginx/blah;
server_name example.co *.example.co;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header X_FORWARDED_PROTO https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Url-Scheme $scheme;
proxy_redirect off;
proxy_max_temp_file_size 0;
}
}
我已删除了证书和内部逻辑,但我的目标是删除任何www.
。所以它会这样:
http://www.user1.example.com - > https://user1.example.com http://www.user2.example.com - > https://user2.example.com
当然,我上面的所有域名都像现在一样工作。
答案 0 :(得分:2)
只有在您拥有所有可用的子域名之后才有可能。
您可以在同一证书中包含多个带通配符的子域。因此,您需要一个包含您将要使用的所有子域的证书
*.example.com
*.user1.example.com
*.user2.example.com
*.user3.example.com
*.user4.example.com
这意味着您无法动态地将新子域添加到列表中,因为它需要重新生成证书。
名称中的通配符仅反映单个标签,通配符只能位于最左侧。因此,没有。 .example.org,www。*。example.org是可能的。 * .example.org既不匹配example.org也不匹配www.subdomain.example.org,只匹配subdomain.example.org。
但是你可以在同一个证书中有多个通配符名称,也就是说你可以在同一个证书中包含* .example.org和* .subdomain.example.org