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

问题描述 投票:0回答:1

我有一个小网站,我在docker上运行,端口9090上的'dev'版本和端口8080上运行的'master'版本。

我在主机上使用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;
    }
}
ssl nginx docker
1个回答
1
投票

您的问题可能是由端口433上设置的Strict-Transport-Security标头引起的。这告诉浏览器在此服务器/域上强制SSL在标头中的时间。

尝试删除标头并尝试缓存免费浏览器。

© www.soinside.com 2019 - 2024. All rights reserved.