【问题标题】:SSL _and_ www redirect with nginx使用 nginx 进行 SSL _and_ www 重定向
【发布时间】:2016-01-31 07:10:03
【问题描述】:

我获得了我的服务器的证书 - example.com 并选择不为 www.example.com 签名,因为我要将所有流量从 www.example.com 重定向到 example.com

现在,我有一个 nginx 重定向工作:

http://example.comhttps://example.com

http://www.example.comhttps://example.com

但我无法让这个工作:

https://www.example.comhttps://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


【解决方案1】:

你必须在 www 地址上放一个证书。

通过使用 https,您的浏览器要求安全连接,然后才能信任服务器所说的。您的连接安全,因此浏览器不会发送 cookie、跟踪重定向等。

这是一件好事。

但它对您的证书预算很不利。

如果您的 CA 允许您将 www 添加为主题备用名称,您可以使用一个证书处理两个域,这很方便并且具有相当广泛的支持。

【讨论】:

  • [昂贵] 经验教训 - 总是免费 www。谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-07-09
  • 2016-04-02
  • 2015-10-09
  • 1970-01-01
  • 2016-12-30
  • 1970-01-01
  • 2018-04-11
  • 2018-09-11
相关资源
最近更新 更多