使用HTTPS的IP可使“您的连接不是私有的” [Nginx / Ubuntu]

时间:2018-10-18 16:34:06

标签: ubuntu redirect nginx https reverse-proxy

我正在Ubuntu上使用NGINX进行301重定向,并为我的Web应用程序使用了反向代理,目的是将流量重定向到非www网址,例如https://mywebapplication.com

使用我当前的NGINX Conf文件配置:

mywebapplication.com -> https://mywebapplication.com
www.mywebapplication.com -> https://mywebapplication.com
http://mywebapplication.com -> https://mywebapplication.com
http://www.mywebapplication.com -> https://mywebapplication.com
123.456.789.123 -> https://mywebapplication.com
http://123.456.789.123 -> https://mywebapplication.com

工作正常,但是当URL中提供了带有HTTPS的IP时,我得到“您的连接不是私有的”。

  

https://123.456.789.123->您的连接不是私有的

这是我的NGINX Conf。

server {
    listen 123.456.789.123:80;

    location / {
        proxy_pass "http://localhost:4000/";
        proxy_http_version 1.1;
        proxy_set_header Connection "Keep-Alive";
        proxy_set_header Proxy-Connection "Keep-Alive";
    }
}

server {
    listen 123.456.789.123:80;
    server_name  123.456.789.123 123.456.789.123:4000;
    return       301 https://mywebapplication.com$request_uri;
}

server {
    listen 80 http2;
    listen [::]:80 http2;
    server_name  mywebapplication.com www.mywebapplication.com;
    return       301 https://mywebapplication.com$request_uri;
}

server {
    listen       443 ssl http2;
    server_name  www.mywebapplication.com;
    return       301 https://mywebapplication.com$request_uri;
}

server {
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    server_name mywebapplication.com;
    ...
    ...
    ...
    ...
}

如何使用HTTPS处理IP到301成功的重定向?

  

https://123.456.789.123-> https://mywebapplication.com

谢谢你们!

1 个答案:

答案 0 :(得分:0)

这里的问题是,您需要使用TLS证书来获取裸IP地址。根据{{​​3}},这种证书确实很少见。在浏览器中打开证书时(当它显示“您的连接不安全”时),您会看到该证书仅对mywebapplication.com有效,对123.456.789.123无效。

为IP地址签名的证书没有多大意义。这样的证书将向用户保证他已连接到123.456.789.123。但是,这并不能真正说明问题。如果没有DNS,则用户不知道该IP的背后是谁。用户希望被连接以确保他已连接到mywebapplication.com

我认为这不是一个大问题。您可以亲自查看大型网站是否具有裸IP证书:(请注意,下面IP后面的服务器将来可能还会托管其他内容):

这些站点都没有裸机IP证书。 (有些已经将HTTP重定向到位)