Estou criando um proxy para uma API interna para permitir que os clientes se conectem sem a necessidade de instalar os certificados autoassinados.
Os clientes (criados, pertencentes e usados apenas internamente) se conectarão via SSL à caixa nginx, onde estou usando o XSendfile para validar credenciais no nível do aplicativo (um aplicativo rails). Se as credenciais forem válidas, a conexão será transmitida de volta ao nginx, onde usa proxy_pass para enviar a conexão ao servidor upstream.
Agora isso funciona muito bem para conexões http padrão, mas estou tentando descobrir como adicionar nossos certificados ao mix.
Esta pergunta é quase idêntica a esta , mas com requisitos de certificado inábeis.
Isso é possível com o nginx? Existe uma solução melhor?
Eu também aceitaria http do cliente -> nginx e certificado autoassinado do nginx para a API.
fonte
proxy_ssl_server_name on;
era tudo o que eu precisava para fazer isso funcionar ao fazer proxy do tráfego para um host no Google App Engine usando seu SSL gerenciado pelo Google! (Este não é um certificado autoassinado ou algo assim, por isso só precisava dessa linha). Obrigado pela ótima dica.Eu acho que você provavelmente quer algo assim (obviamente simplificado para este exemplo):
A única coisa que você pode precisar alterar é tornar o "Host" explícito - se, por exemplo, o nome do host com proxy não for o mesmo que o nome do host usado no servidor proxy nginx.
fonte
Para quem se deparar com isso no futuro, acabei não usando o nginx para isso.
Em vez disso, acabei usando stunnel no "modo cliente". Muito fácil de configurar e faz exatamente o que eu preciso.
fonte