google-chrome - 如何在不触发浏览器 SSL 检查的情况下重定向 www 流量?

标签 google-chrome redirect ssl nginx

我有 example.com 的有效证书。如果用户访问我的站点 http://example.com , 他们被重定向到 https://example.com一切都很好。如果他们去 https://example.com , 一切都很好。如果他们甚至去 http://www.example.com , 他们被重定向到 https://example.com一切都很好。

但是,如果他们转到 https://www.example.com , Chrome 在我重定向之前触发了它的 SSL 警告,并告诉用户不要信任这个网站。我在 Safari 或 Firefox 中没有这个问题。

这是我的 nginx 配置。我做错了什么?

```

# Configuration for redirecting non-ssl to ssl;                                                                                                                                                         

server {
    listen *:80;
    listen [::]:80;
    server_name example.com;
    return 301 https://example.com$request_uri;
}       

# Configuration for redirecting www to non-www; 

server {    
    server_name www.example.com;
    ssl_certificate ssl/ssl_cert.crt;
    ssl_certificate_key ssl/ssl_key.key;
    listen *:80;
    listen *:443 ssl spdy;    
    listen [::]:80 ipv6only=on;
    listen [::]:443 ssl spdy ipv6only=on;

    return 301 https://example.com$request_uri;
} 

server {
    listen *:443 ssl spdy;   
    listen [::]:443 ssl spdy;
    ssl_certificate ssl/ssl_cert.crt;
    ssl_certificate_key ssl/ssl_key.key;
    server_name example.com;
}

```

编辑:我看到这是一个有问题的配置,因为第二个 block 将查看证书。使用从“example.com”而不是“www.example.com”读取的证书进行设置的正确方法是什么?

最佳答案

如果您的证书仅适用于 example.com 而不是 www.example.com,那么无论您是否只想重定向它,对 www.example.com 的任何访问都会触发证书警告。重定向是在 HTTP 级别完成的,在它与 HTTP 对话之前,它首先进行 SSL 握手(这会触发问题),因为 HTTPS 只是 SSL 内部的 HTTP。

在您提问之前,使用 DNS(如 CNAME)的技巧也无济于事,因为浏览器会将证书与 URL 中的名称进行比较,而不是与可能的 DNS 别名进行比较。根本没有办法获得适当的证书。

关于google-chrome - 如何在不触发浏览器 SSL 检查的情况下重定向 www 流量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43381069/

相关文章:

javascript - 如何在Chrome Inspector工具中更好地识别错误行号

java - 如何使用 Selenium 关闭 Chrome 的下载对话框(通过单击取消)

javascript - clearInterval 会导致重定向吗?

java - SSLSockets 和密码规范问题

java - 为什么客户端只有在关闭此 TLS 连接中的流后才会收到消息?

javascript - pdfium 是否将其 api 公开给 javascript?我想获取当前页数,但是该怎么做呢?

javascript - IE 和 Chrome 中的 Div 定位和 css 样式更改

bash - 为什么使用 2>&1 指令重定向 stderr 失败?预计产出如何发挥作用?

Cakephp,将旧的谷歌搜索结果路由到新主页

Node.js OpenStack Swift 插件连接错误