nginx - 不安全的http服务器错误地重定向到https服务器

时间:2017-01-29 16:34:28

标签: ssl nginx docker

我有一个小型网站,我在码头上运行,其中包括“开发者”。端口9090上的版本和' master'在端口8080上运行的版本。

我在主机上使用Nginx(未在docker上运行)来处理来自互联网的请求在端口80/443上的代理。

端口80/443代理工作完美。没问题。

问题:当尝试创建在端口90上运行的服务器(以显示网站的开发版本)时,这似乎是不安全的,这似乎尝试重定向回SSL版本该网站的页面,由浏览器重定向到SSL确认,我在页面上收到错误:ERR_SSL_PROTOCOL_ERROR

如果我注释掉在端口80上运行的服务器,这个问题就会消失,但是我在实时/主站点上丢失了端口80重定向。

任何人都可以看到我如何设置配置可能会出现什么问题 - 谢谢!配置如下:

server {
listen       443 ssl;
    server_name  xxxxxxxxxxxxx.co.uk www.xxxxxxxxxxxxx.co.uk;
    {some ssl config here}
    add_header Strict-Transport-Security max-age=15768000;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;
    proxy_pass http://localhost:8080;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

server {
    listen 80;
    server_name xxxxxxxxxxxxx.co.uk www.xxxxxxxxxxxxx.co.uk;
    return 301 https://$host$request_uri;
}

server {
listen 90;
server_name xxxxxxxxxxxxx.co.uk www.xxxxxxxxxxxxx.co.uk;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;
    proxy_pass http://localhost:9090;
    proxy_redirect off;
    }
}

1 个答案:

答案 0 :(得分:1)

Your problem is caused probably by Strict-Transport-Security header set on port 433. Which told browser to force SSL on this server/domain for the time in header.

Try to remove header and try on cache free browser.