Как настроить конфигурацию 404 nginx для хоста по умолчанию на порту 443

Последние несколько недель я ищу решения для настройки конфигурации 404 nginx для хоста по умолчанию на порту 443. И пока никакого решения.

Чтобы правильно прояснить вопрос. Возьмем в качестве примера сайт quora.com, работающий на nginx.

Теперь общедоступный IP-адрес Quora.com - 192.229.182.210, и когда вы вводите следующее, он показывает следующие результаты

http://192.229.182.210 - показывает 404

Последние несколько недель я ищу решения для настройки конфигурации 404 nginx для хоста по умолчанию на порту 443. И пока никакого решения.

Чтобы правильно прояснить вопрос. Возьмем в качестве примера сайт quora.com, работающий на nginx.

Теперь общедоступный IP-адрес Quora.com - 192.229.182.210, и когда вы вводите следующее, он показывает следующие результаты

http://192.229.182.210 - показывает 404

Последние несколько недель я ищу решения для настройки конфигурации 404 nginx для хоста по умолчанию на порту 443. И пока никакого решения.

Чтобы правильно прояснить вопрос. Возьмем в качестве примера сайт quora.com, работающий на nginx.

Теперь общедоступный IP-адрес Quora.com - 192.229.182.210, и когда вы вводите следующее, он показывает следующие результаты

http://192.229.182.210 - показывает 404 https://192.229.182.210 - Сервер может обмануть -> затем показывает 404

Подсказка - Большинство других серверов, работающих на nginx, сообщает о недействительном сертификате и затем перенаправляет на свой рабочий хост. Пример - wordpress.org

Вопрос в том, следует ли использовать фрагмент ssl в конфигурации по умолчанию для передачи 404, как показывает общедоступный https ip-адрес Quorara? Если да, было ли оно подписано самостоятельно? Если ssl не используется, как это сделать?

Моя текущая конфигурация -

server {
listen 80 default_server;
listen [::]:80 default_server;

server_name _;

return 403;
}
-1
задан 13 May 2017 в 07:43
2 ответа

https://192.229.182.210 показывает предупреждение о сертификате в Chrome, IE и Firefox. Возможно, вы добавили исключение, позволяющее игнорировать несоответствие сертификатов, или вы используете странно разрешающий браузер. Если вы не видите этого, очистите кеш и исключения, обновите и предоставьте снимок экрана, если это все еще происходит.

То, что я описал выше, является ожидаемым поведением, поскольку сертификаты https выдаются для доменного имени, а не для IP.

Я не думаю, что можно отображать страницу на основе https-запросов к вашему IP без имени домена. без предупреждения о сертификате. Это потребует выдачи сертификата https на IP-адрес, что возможно , но делается очень редко.

0
ответ дан 5 December 2019 в 20:24

Наконец-то нашел ответ о том, как получить приличный 404 для IP-адреса по умолчанию ssl.

Источник: Правильная настройка сервера nginx «по умолчанию» для https

Хотя немногие проголосовали за этот ответ, похоже, что Quora использует самоподписанный сертификат для хоста по умолчанию и показывает пользовательский 404. При использовании следующего будет отображаться значение по умолчанию 404.

Установите конфигурацию по умолчанию на это.

server {
server_name _;
listen       80  default_server;
return       404;
}


server {
listen 443 ssl;
server_name _;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
return       404;
}

Затем создайте каталог для ssl, если он не существует

sudo mkdir -p /etc/nginx/ssl

Затем создайте самоподписанный ssl для того же самого

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

Проверить наличие ошибки и перезагрузите nginx, чтобы получить 404

nginx -t

sudo sytemctl reload nginx
0
ответ дан 5 December 2019 в 20:24

Теги

Похожие вопросы