nginx: desativa completamente as respostas HTTP para a porta SSL

2

Eu tenho um servidor HTTPS privado usando o nginx. Portanto, não me importo com a compatibilidade do navegador nem com o redirecionamento HTTP para HTTPS; Eu só quero que funcione no meu ambiente e em nenhum outro lugar. Eu já o configurei com "listen 17648 ssl;". Sempre que tento me conectar a ele usando HTTP simples, recebo a infame resposta "A solicitação HTTP simples foi enviada para a porta HTTPS".

Existe alguma maneira de impedir que o nginx envie qualquer resposta quando uma solicitação HTTP é enviada para uma porta HTTPS? Eu gostaria que o nginx simplesmente fechasse a conexão se a requisição não fosse SSL, ou talvez retornasse algum erro no nível SSL, mas nenhuma resposta HTTP simples, nem mesmo uma resposta de erro.

    
por user427569 13.12.2015 / 11:04

1 resposta

5

Da documentação do Nginx sobre a cláusula retorno :

The non-standard code 444 closes a connection without sending a response header.

Então eu tentei pegar o erro 497 "HTTP to HTTPS" e tentei retornar o 444 dessa maneira:

error_page 497 =444 @close;

location @close {
   return 444;
}

Infelizmente, isso leva a um estado "pendente" devido a esse bug

Usando a solução proposta pelo desenvolvedor, parece funcionar:

error_page 497 =444 @close;

location @close {
   return 0;
}

Tente se isso atender às suas necessidades!

    
por 13.12.2015 / 16:09

Tags