Relacionado à minha pergunta sobre como configurar um proxy reverso usando nginx , agora estou preso ao configurar um que requer adicionalmente uma conexão SSL.
Eu tenho um contêiner docker que fornece a porta SSL mapeada 4430 para meu sistema host. O servidor da Web está usando um certificado autoassinado.
No meu /etc/hosts
arquivo, eu defini:
127.0.0.1 app.local
E minha configuração do servidor nginx se parece com:
server {
listen 80;
server_name app.local;
location / {
return https://$host$request_uri;
}
}
server {
listen 443;
server_name app.local;
location / {
proxy_pass https://127.0.0.1:4430;
}
}
Quando eu acesso meu webapp usando https://127.0.0.1::4430
ele funciona bem. No entanto, recebo um aviso sobre o certificado na primeira vez, o que devo permitir.
No entanto, ao conectar-se a ele por meio de http://app.local
ou https://app.local
, meu navegador mostra:
SSL connection error
ERR_SSL_PROTOCOL_ERROR
Eu também esperava que o aviso de certificado aparecesse, o que eu poderia permitir.
Como fazer o proxy reverso funcionar ao usar SSL com nginx?
Para encerrar o SSL no nginx:
a) A seção do servidor precisa especificar a porta e 'ssl'
b) O bloco do servidor também especifica os parâmetros certs e ssl
Você está perto, eu acho (sou novo no Nginx), mas seu segundo bloco de servidor precisa de um pouco mais ... Eu tenho um no meu servidor com isso:
Observe o seguinte:
O ipv6, o charset e o corpo máximo do cliente são linhas que tenho no meu servidor, mas não são necessárias para o que você está fazendo aqui. Você pode nomear qualquer coisa e colocá-los em qualquer lugar, então não fique preso ao nome do arquivo ou local exato se você armazenar o seu em outro lugar. É assim que eu gosto de fazer, e minha
ls -l
saída é: