ubuntu - 使用 HTTPS 的 IP 给出 "Your connection is not private"[Nginx/Ubuntu]

标签 ubuntu redirect nginx https reverse-proxy

我在 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 时,我得到“您的连接不是私有(private)的。”

https://123.456.789.123 -> Your connection is not private

这是我的 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

谢谢你们!

最佳答案

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

IP 地址的签名证书没有多大意义。这样的证书将向用户保证他已连接到 123.456.789.123。然而,这并不能说明问题。没有 DNS,用户就不知道这个 IP 背后的人是谁。用户希望确信他已连接到由域名标识的服务,例如 mywebapplication.com,并且并不关心 ip 是否为 123.456.789.123321.654.​​987.321

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

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

关于ubuntu - 使用 HTTPS 的 IP 给出 "Your connection is not private"[Nginx/Ubuntu],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52878690/

相关文章:

android - 奇怪的自动提交(Android Studio、GitKraken、Ubuntu)?

java - 未找到 XPathFactory 实现,ubuntu 服务器中的 xpath 工厂实例创建问题。如何解决问题?

php - 使用不同的参数处理 .htaccess 重定向?

node.js - 使用 fast-csv 流解析器的 Node js Express 应用程序无法在 "data-invalid"上重定向

ubuntu - 建议删除 SSL 证书并在 ubuntu 16 上使用 Letsencrypt NGINX 生成一个

ruby-on-rails - 使用 SSL 的 Rails 应用太慢

linux - 使用 Incrond Inotify 但遇到用户组/权限问题

c# - 在 Linux 上从 C# Mono 控制鼠标和键盘

javascript - URL重写: Show all files of certain directories at root of site

ssl - 使用自签名证书在 Chrome 上失败的客户端身份验证