De fout zegt “verkeerde versie”, dus het is verleidelijk om TLS-versies te gaan wisselen. Controleer bij een proxy eerst een eerdere mogelijkheid: stuurde de client een TLS-handshake naar een poort die op gewone HTTP wachtte?

Een bestemming zoals https://example.com/ en een proxy zoals http://proxy.example:8080 zijn een gewoon paar. De tweede URL naar HTTPS zetten zegt de client dat hij zijn gesprek met de proxy zelf versleutelt. Het is geen opdracht om HTTPS-websites toe te staan.

Vind het eerste TLS-gesprek

Bij een HTTP-proxy kan de client eerst CONNECT sturen en een HTTP-antwoord ontvangen. Pas daarna begint hij de TLS van de bestemming in de tunnel. Bij een HTTPS-proxy komt eerst een aparte TLS-verbinding naar de proxy.

Een TLS-parser die een HTTP-foutpagina of andere platte tekst ontvangt, kan een protocolfout melden. De formulering stelt niet vast welke TLS-versies de site ondersteunt, of zelfs dat de site is benaderd.

  1. Noteer de URL van de proxy, inclusief het schema, en het gedocumenteerde protocol van het eindpunt.
  2. Zoek uit of de fout optrad vóór een CONNECT-antwoord, tijdens de TLS van de bestemming of bij het verifiëren van het certificaat van de proxy zelf.
  3. Controleer de werkelijke versies van de client en de afhankelijkheden wanneer je een oude omweg vergelijkt. Eerdere proxy-implementaties behandelden een schema soms anders.

Verschillende oplossingen kunnen om verschillende redenen onjuist zijn. De HTTP-proxylijst biedt gewone HTTP-eindpuntkandidaten voor openbare verzoeken die via zo'n route zijn toegestaan. Een gewoon HTTP-eindpunt heeft het HTTP-proxyschema nodig; een werkelijk TLS-ingeschakeld eindpunt moet HTTPS en de certificaatverificatie behouden. Een proxy die CONNECT weigert, heeft een ondersteunde dienst of beleid nodig, geen willekeurige downgrade van de bibliotheek.

Houd de eerste waarneembare fout vast. Het uitschakelen van certificaatverificatie kan een luisteraar die alleen HTTP spreekt niet TLS laten spreken, en het kiezen van een oud cipherbeleid kan een HTTP-weigering die vóór de handshake van de site is verzonden niet verklaren.

Gerelateerde artikelen