【发布时间】:2016-01-31 07:10:03
【问题描述】:
我获得了我的服务器的证书 - example.com 并选择不为 www.example.com 签名,因为我要将所有流量从 www.example.com 重定向到 example.com。
现在,我有一个 nginx 重定向工作:
http://example.com → https://example.com
和
http://www.example.com → https://example.com
但我无法让这个工作:
https://www.example.com → https://example.com
发生的情况是 nginx 很好地加载了站点www 在地址栏中,然后 chrome 抛出 SSL 警告,因为交付的证书没有为 www.example.com 签名,只是 @987654333 @。
这是我的配置。我该怎么做?我是否需要购买另一个证书并为 www.example.com 签名?
upstream app_nodejs2 {
server 127.0.0.1:3333;
}
server {
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
server {
listen 80;
listen [::]:80;
listen 443 ssl;
#ssl on;
ssl_certificate /root/sslcert/example.crt;
ssl_certificate_key /root/sslcert/example.key;
server_name example.com;
if ($ssl_protocol = "") {
rewrite ^ https://$server_name$request_uri? permanent;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://app_nodejs2;
proxy_redirect off;
}
}
【问题讨论】:
-
使用 www 子域重新生成您的证书,它将同时签署两者。你显然会需要它。
-
获得通配符认证要贵多少?如果您认为它在不久的将来会派上用场,您可以考虑它。
-
我试图重新生成它,但 Geotrust 不允许。结果 Name.com 退还了我,我买了一个新的,并正确地使用 www 和 no-www 做到了。谢谢大家 - 吸取教训!
标签: redirect ssl express nginx