带有 HTTPS 的 IP 给出“您的连接不是私有的”[Nginx/Ubuntu]

Posted

技术标签:

【中文标题】带有 HTTPS 的 IP 给出“您的连接不是私有的”[Nginx/Ubuntu]【英文标题】:IP with HTTPS gives "Your connection is not private" [Nginx/Ubuntu] 【发布时间】:2019-03-23 12:55:27 【问题描述】:

我在 Ubuntu 上使用 nginx 进行 301 重定向,并为我的 Web 应用程序使用反向代理,目的是将流量重定向到非 www url,例如 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 会议。

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】:

这里的问题是您需要 TLS 证书才能获得裸 IP 地址。根据this thread 的说法,这样的证书真的很少见。当您在浏览器中打开证书时(当它显示“您的连接不安全”时),您会看到该证书仅对 mywebapplication.com 有效,对 123.456.789.123 无效。

IP 地址的签名证书没有多大意义。这样的证书将向用户保证他已连接到123.456.789.123。然而,这并不能说明一切。没有 DNS,用户不知道这个 IP 的背后是谁。用户希望确保他连接到由域名标识的服务,例如mywebapplication.com,并且并不真正关心 ip 是123.456.789.123 还是321.654.987.321

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

谷歌:https://172.217.18.14/ 脸书:https://185.60.216.35/ Github:https://192.30.253.112/

这些网站都没有裸 IP 证书。 (有些有针对 HTTP 的重定向)

【讨论】:

以上是关于带有 HTTPS 的 IP 给出“您的连接不是私有的”[Nginx/Ubuntu]的主要内容,如果未能解决你的问题,请参考以下文章

chrome阻止localhost,错误,您的连接不是私有的

XAMPP:您的连接不是私有的 NET::ERR_CERT_AUTHORITY_INVALID

将 https ip 重定向到共享主机中 htaccess 中的域

离子 ssl 产生信任

带有 IP 地址的通用链接

带有jdbc令牌存储的spring boot oauth2给出oauth_access_token关系不存在