Aqui está o acordo:
- Nosso software cliente só pode se conectar usando o protocolo http, não pode fazer https.
- No entanto, os requisitos de segurança determinam a segurança de ponta a ponta, por isso precisamos usar https ao conversar com o servidor.
- Agora consegui fazer isso em um ambiente de teste usandotúnelcom a seguinte configuração:
arquivo stunnel.conf:
[mylocalproxy]
client = yes
accept = 127.0.0.1:3000
connect = the.real.server:443
- Dada a configuração do stunnel acima, posso configurar meu cliente de teste para usar o endereço do endpoint
http://localhost:3000/endpoint/url/
e tudo funciona bem. - Mas no ambiente de produção, o lado do cliente não tem acesso direto de rede ao.real.server. O tráfego HTTP/s do lado do cliente precisa passar por um servidor proxy.
- Minhas perguntas:
- É possível configurar o stunnel para conectar-se usando um servidor proxy?
- Se não for possível usar o stunnel, existe outra maneira de fazer isso?
Responder1
Parece ser apoiado, mas opágina de manual, mas a linguagem é escrita de forma que você precisa mais ou menos conhecer os protocolos para entendê-la:
SobProtocolopodemos ver o seguinte:
connect Baseado em RFC 2817 - Atualizando para TLS dentro de HTTP/1.1, seção 5.2 - Solicitando um túnel com CONNECT Este protocolo é suportado apenas no modo cliente.
Mais abaixo encontramos o seguinte:
protocolHost = ADDRESS Endereço do host para as negociações do protocolo Para as negociações do protocolo 'connect', protocolHost especifica HOST:PORT do servidor TLS final ao qual o proxy será conectado. O servidor proxy conectado diretamente pelo stunnel deve ser especificado com a opção connect.
Assim, podemos juntar as peças:
[mylocalproxy]
client = yes
accept = 127.0.0.1:3000
protocol = connect
connect = proxy.example.org:3128
protocolHost = the.real.server:443
Não testei, mas com base no texto da documentação, deve funcionar conforme desejado.
Responder2
Você pode fazer isso com:
[SSL Proxy]
accept = 8443
connect = 8084
cert = certificate.pem
key = private_key.pem
Você precisará de um certificado de uma autoridade de certificação para permitir conexões de cliente https.