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

Maxim Dounin mdounin на mdounin.ru
Ср Июл 6 19:21:21 UTC 2022


Hello!

On Wed, Jul 06, 2022 at 04:44:41AM -0400, milov wrote:

> Maxim Dounin Wrote:
> -------------------------------------------------------
> > У вас явно некорректная конфигурация, использующая "ssl on;".  
> > Основное правило при использовании "ssl on;" очень простое: SSL и 
> > не-SSL listen-сокеты должны использоваться строго в разных блоках 
> > server{}.  Любые попытки совместить - чреваты.  Ибо если вдруг у 
> > вас в сервере по умолчанию для не-SSL listen-сокета окажется "ssl 
> > on;", то сокет станет SSL-сокетом.
> > 
> > Скорее всего "раньше всегда работало" потому, что в сервера по 
> > умолчанию для не-SSL listen-сокетов стояли корректные, а сейчас 
> > из-за каких-то минимальных изменений конфига (скажем, кто-то 
> > добавил блок server с несколькими listen-сокетами и "ssl on;") - 
> > ситуация поменялась.
> > 
> > Если по каким-то причинам хочется исправить конфигурацию, не 
> > переходя на "listen ... ssl" - показывайте полную конфигурацию, 
> > поможем найти источник проблем.
> > 
> > Но проще и правильнее сразу переделать всё на использование 
> > "listen ... ssl", благо это тривиально: "ssl on;" из конфига 
> > убрать, а у listen-сокетов, которые должны использовать SSL, 
> > добавить флаг "ssl" (как минимум один раз, например, в сервере по 
> > умолчанию, но можно во всех директивах listen).
> > 
> 
> Вот конфиг, я его постил в самом начале, как видите разнесено по разным
> блокам server{}
> 
> server {
> listen 80;
> server_name .local.map;
> rewrite ^(.*) https://$host$1 permanent;
> #return 301 https://$host$request_uri;
> }
> 
> server {
> listen 443 ssl http2 default_server;
> 
> 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; .....
> 
> есть второй сайт, у которого конфиг такой-же, только пути разные плюс убрал
> на другой айпи сокет и убрал default_server после чего заработало.

Покажите полную конфигурацию - вывод "nginx -T".  Как уже сказано 
выше, судя по симптомам у вас в конфиге где-то "ssl on;", и от 
этого проблемы.

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



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