IP с HTTPS дает «Ваше соединение не является частным» [Nginx / Ubuntu] - PullRequest
0 голосов
/ 18 октября 2018

Я использую NGINX для переадресации 301 в Ubuntu и обратный прокси-сервер для своего веб-приложения, и целью является перенаправление трафика на URL, не относящийся к www, например https://mywebapplication.com.

Итак, с моей текущей конфигурацией для NGINX Conf File:

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 указан IP с HTTPS, я получаю "Ваше соединение не является частным."

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;
    ...
    ...
    ...
    ...
}

Как я могу обрабатывать IP с HTTPSк успешному перенаправлению 301?

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

Благодарю вас, ребята!

1 Ответ

0 голосов
/ 23 октября 2018

Проблема здесь в том, что вам понадобится сертификат TLS для чистого IP-адреса.Согласно этой теме , такие сертификаты действительно редки.Когда вы открываете сертификат в браузере (когда он говорит «Ваше соединение не защищено»), вы видите, что сертификат действителен только для mywebapplication.com, а не для 123.456.789.123.

Подписанный сертификат дляIP-адрес не имеет особого смысла.Такой сертификат будет гарантировать пользователю, что он подключен к 123.456.789.123.Однако это не очень показательно.Без DNS пользователь не знает, кто стоит за этим IP.Пользователь хочет быть подключенным, чтобы быть уверенным, что он подключен к mywebapplication.com.

Я не думаю, что это большая проблема.Вы сами можете убедиться, что крупные веб-сайты имеют сертификат для своего чистого IP-адреса: (обратите внимание, что серверы, расположенные ниже по IP-адресам, могут в будущем разместить что-то еще):

Ни один из этих сайтов не имеет сертификатов для своего голого IP.(Некоторые имеют перенаправления для HTTP на месте)

...