400 Bad Request The plain HTTP request was sent to HTTPS port

Maxim Dounin mdounin на mdounin.ru
Вт Июл 5 12:55:07 UTC 2022


Hello!

On Tue, Jul 05, 2022 at 05:49:57AM -0400, milov wrote:

> Прошу посильной помощи, появилась ошибка 400 Bad Request с http на https
> после обновления сертификата летс энкрипт
> 
> Конфиг nginx не менялся уже года 3 как минимум, редиректы хорошо работали.
> Вчера обновил сертификат летс энкрипт и тут понеслись ошибки редиректа, хотя
> и раньше обновлял этот сертификат и было всё хорошо.
> 
> Вот конфиг:
> 
> server {
>     listen 80;
>     server_name .local.map;
>     rewrite ^(.*) https://$host$1 permanent;
>     #return 301 https://$host$request_uri;
> }
> 
> server {
>     listen 443 ssl http2;
> 
>     ssl_certificate /etc/letsencrypt/live/local.map/fullchain.pem;
>     ssl_trusted_certificate /etc/letsencrypt/live/local.map/fullchain.pem;
>     ssl_certificate_key /etc/letsencrypt/live/local.map/privkey.pem;
> 
>     server_name .local.map;
>     set $root /var/www/msk/data/local.map;
>     root $root;
>     access_log off;
> и т.д....

Начать с простого: перегрузить конфиг (или просто рестартовать 
nginx), если не поможет - внимательно его проверить на предмет 
"ssl on;" и "listen ... ssl;".

Проверять лучше через "nginx -T", дабы случайно не упустить 
какие-либо include'ы.

Отмечу, что если сертификаты обновлялись с помощью Certbot, то он 
при обновлении модифицирует конфиги nginx'а (а потом возвращает 
всё "как было").  Это может заканчиваться, скажем так, неожиданно.  
Лично я рекомендую для выпуска сертификатов использовать 
Dehydrated и необходимые дополнения в конфиг прописывать руками.

-- 
Maxim Dounin
http://mdounin.ru/



Подробная информация о списке рассылки nginx-ru