Aquí está el trato:
- Nuestro software cliente solo puede conectarse mediante el protocolo http, no puede hacerlo mediante https.
- Sin embargo, los requisitos de seguridad dictan la seguridad de un extremo a otro, por lo que debemos utilizar https cuando hablemos con el servidor.
- Ahora he podido hacer esto en un entorno de prueba usandotúnelcon la siguiente configuración:
archivo stunnel.conf:
[mylocalproxy]
client = yes
accept = 127.0.0.1:3000
connect = the.real.server:443
- Dada la configuración de stunnel anterior, puedo configurar mi cliente de prueba para usar la dirección del punto final
http://localhost:3000/endpoint/url/
y todo funciona bien. - Pero en el entorno de producción, el lado del cliente no tiene acceso directo a la red al servidor real. El tráfico HTTP/S del lado del cliente tiene que pasar por un servidor proxy.
- Mis preguntas:
- ¿Es posible configurar stunnel para conectarse mediante un servidor proxy?
- Si no es posible usar stunnel, ¿hay otra manera de lograrlo?
Respuesta1
Parece ser compatible, pero elpágina de manual, pero el lenguaje está escrito de manera que más o menos hay que conocer los protocolos para entenderlo:
BajoProtocolopodemos ver lo siguiente:
connect Basado en RFC 2817 - Actualización a TLS Dentro de HTTP/1.1, sección 5.2 - Solicitud de un túnel con CONNECT Este protocolo solo se admite en modo cliente.
Más abajo encontramos lo siguiente:
protocoloHost = DIRECCIÓN dirección de host para las negociaciones del protocolo Para las negociaciones del protocolo de 'conexión', protocoloHost especifica HOST:PUERTO del servidor TLS final al que se conectará el proxy. El servidor proxy conectado directamente por stunnel debe especificarse con la opción de conexión.
Así podemos reconstruir esto:
[mylocalproxy]
client = yes
accept = 127.0.0.1:3000
protocol = connect
connect = proxy.example.org:3128
protocolHost = the.real.server:443
No lo he probado, pero según la redacción de la documentación, debería funcionar como se desea.
Respuesta2
Puedes hacerlo con:
[SSL Proxy]
accept = 8443
connect = 8084
cert = certificate.pem
key = private_key.pem
Necesitará un certificado de una autoridad certificadora para permitir conexiones de cliente https.