Solución:
El proxy HTTP obtiene una solicitud de texto sin formato y [in most but not all cases] envía una solicitud HTTP diferente al servidor remoto y luego devuelve información al cliente.
El proxy HTTPS es un retransmisor, que recibe una solicitud HTTP especial (verbo CONNECT) y construye un túnel opaco al servidor de destino (que no es necesariamente un servidor HTTPS). Luego, el cliente envía una solicitud SSL / TLS al servidor y continúan con el protocolo de enlace SSL y luego con HTTPS (si se solicita).
Como puede ver, estos son dos tipos de proxy completamente diferentes con diferente comportamiento y diferentes objetivos de diseño. El proxy HTTPS no puede almacenar en caché nada, ya que no ve la solicitud enviada al servidor. Con el proxy HTTPS tiene un canal al servidor y el cliente recibe y valida el certificado del servidor (y opcionalmente viceversa). El proxy HTTP, por otro lado, ve y tiene control sobre la solicitud que recibió del cliente.
Si bien la solicitud HTTPS se puede enviar a través de un proxy HTTP, esto casi nunca se hace porque en este escenario el proxy validará el certificado del servidor, pero el cliente podrá recibir y validar solo el certificado del proxy, y el nombre en el certificado del proxy no coincidirá la dirección a la que está conectado el socket, en la mayoría de los casos se dará una alerta y el protocolo de enlace SSL no tendrá éxito (no voy a entrar en detalles sobre cómo tratar de abordar esto).
Finalmente, como el proxy HTTP puede examinar la solicitud, esto invalida la idea de seguridad proporcionada por el canal HTTPS, por lo que el uso del proxy HTTP para las solicitudes HTTPS normalmente se realiza solo con fines de depuración (nuevamente omitimos los casos de políticas de seguridad paranoicas de la empresa que requieren monitoreo de todo el tráfico HtTPS de los empleados de la empresa).
Además: también lea mi respuesta sobre el tema similar aquí.
No hay pros ni contras. Y no hay un servidor “proxy HTTPS”.
Puede indicar a los controladores de protocolo qué servidor proxy utilizar para diferentes protocolos. Esto se puede hacer por http
, https
, ftp
y socks
. Ni más ni menos.
No puedo decirte si debes usar un proxy diferente para las conexiones https o no. Eso depende. Solo puedo explicar la diferencia de una solicitud http y https a un proxy.
Desde el Proxy HTTP (o proxy web) entiende HTTP
(de ahí el nombre), el cliente puede simplemente enviar la solicitud al servidor proxy en lugar del destino real. Esto hace no trabajar para HTTPS
. Esto se debe a que el proxy no puede realizar el protocolo de enlace TLS, lo que ocurre al principio. Por tanto, el cliente debe enviar un CONNECT
solicitud al proxy. El proxy establece una conexión TCP y simplemente envía los paquetes hacia adelante y hacia atrás sin tocarlos. Entonces, el apretón de manos de TLS ocurre entre el cliente y la destinación. El servidor proxy HTTP no no ve todo y hace no validar el certificado de los servidores de destino en absoluto.
Puede haber cierta confusión con todo esto de http, https, proxy. Es posible conectar para un proxy HTTP con https. En este caso, la comunicación entre el cliente y el apoderado está encriptado.
También hay los llamados TLS terminating
o interception
servidores proxy como SSL Peek and Splice de Squid o burp, que ver todo. Pero esto no debería funcionar de inmediato, porque el proxy utiliza certificados propios que no están firmados por CA confiables.
Referencias
- https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html
- https://parsiya.net/blog/2016-07-28-thick-client-proxying—part-6-how-https-proxies-work/
- http://dev.chromium.org/developers/design-documents/secure-web-proxy
- https://tools.ietf.org/html/rfc2817#section-5
- https://tools.ietf.org/html/rfc7231#section-4.3.6
Si te refieres a conectarse a un servidor proxy HTTP a través de TLS diciendo Proxy HTTPS, luego
Me preguntaba si hay ventajas de usar un servidor proxy HTTPS en comparación con un servidor proxy HTTP.
La ventaja es que la conexión de su cliente al servidor proxy está encriptada. Por ejemplo, un firewall no puede ver qué host usa CONNECT
método de conexión.
¿Es menos engorroso acceder a una URL https a través de un proxy HTTPS que hacerlo desde un proxy HTTP?
Todo es igual, excepto que con el proxy HTTPS, la conexión del navegador al servidor proxy está encriptada.
Pero necesita implementar un certificado en su servidor proxy, como lo hace un sitio web https, y usar un pac
archivo para configurar el navegador para habilitar Conectarse a un proxy a través de SSL.
Para obtener más detalles y un ejemplo práctico, consulte mi pregunta y respuesta aquí. El servidor proxy HTTP solo funciona en SwitchOmega