nginx将所有https请求重定向到本地https门户网站

时间:2016-02-10 18:07:46

标签: redirect nginx https rewrite http-status-code-302

我有本地门户(强制门户),这是https并将所有http请求重定向到本地https工作正常。 但是将请求从https重定向到本地https门户网站根本不起作用。 我在这里如何配置nginx:

upstream flask_portal {
    server unix:/tmp/flask_portal.sock;
}

server {
    listen 172.31.3.1:443 default_server;
    rewrite ^(.*) https://my_site.com?url=$server_name$1;
}

server {
    listen 172.31.3.1:80 default_server;
    listen 172.31.3.1:443 ssl;
    server_name my_site.com;
    ssl_certificate      my_site.com.cert;
    ssl_certificate_key  my_site.com.key;

    location / {
        uwsgi_pass flask_portal;
        include uwsgi_params;
    }
}

当我用curl测试https://www.google.com时 它报道:

curl: (35) Unknown SSL protocol error in connection to www.googlw.com:443

我认为nginx应该将www.google com重定向到my_site.com,curl应该询问my_site证书,但事实并非如此。

1 个答案:

答案 0 :(得分:1)

无法重定向https,因为您的证书与www.google.com或* .google.com不匹配,因此浏览器(正确地)将无法与之握手。 Curl(和您的浏览器)永远不会看到重定向,因为这需要成功握手。

可以做的是告诉浏览器您是强制网络门户https://www.chromium.org/chromium-os/chromiumos-design-docs/network-portal-detection