使用SSL的Nginx重定向子域

时间:2014-12-11 06:22:21

标签: ssl nginx subdomain

所以我的端口80重定向正常工作

server {
    listen  80;
    server_name "~^(?<subdomain>.+)\.site-box\.it$";
    rewrite ^(.*)$ https://$subdomain.sitebox.co permanent;
}

但我希望https能够正常工作,因为有些旧链接会留下https://guy.site-box.it

但这不起作用

server {
    listen  443;
    server_name "~^(?<subdomain>.+)\.site-box\.it$";
    rewrite ^(.*)$ https://$subdomain.sitebox.co permanent;
}

似乎在Nginx conf文件中没有任何效果。我只是在主站点和测试guy.site-box.it上遇到cloudflare错误,它只是说页面不可用。

知道如何让SSL子域工作吗?

1 个答案:

答案 0 :(得分:1)

首先,您需要2个证书:subdomain.site-box.itsubdomain.sitebox.co。如果你有通配符证书 - 好,可以使用一个服务器块。如果您有单独的证书 - 需要为每个子域创建一个server(因为证书路径不同)。

此外,您需要具有SNI支持的openssl(好吧,几乎所有现代版本都有)并检查浏览器/操作系统支持。 SNI - 用于基于https名称的托管。

此外,better使用return 301代替rewritereturn 301 https://$subdomain.sitebox.co好多了。

最后你server阻止配置不好。您忘记了ssl关键字和证书路径。

server {
 listen 443 ssl;
 ssl_certificate ... ;
 ssl_certificate_key ... ;
}