WRONG_VERSION_NUMBER med proxy: kontrollér HTTP kontra HTTPS
Diagnosticér en transportuoverensstemmelse i proxyen, før du nedgraderer TLS-versioner eller ændrer certifikatindstillinger på grund af en misvisende SSL-fejl.
Fejlen siger “forkert version”, så det frister at begynde at skifte TLS-versioner. Med en proxy bør du kontrollere en tidligere mulighed: sendte klienten et TLS-håndtryk til en port, der ventede på almindelig HTTP?
En destination som https://example.com/ og en proxy som http://proxy.example:8080 er et almindeligt par. At ændre den anden URL til HTTPS fortæller klienten at kryptere sin samtale med selve proxyen. Det er ikke en instruks om at tillade HTTPS-websteder.
Find den første TLS-samtale
Med en HTTP-proxy kan klienten først sende CONNECT og modtage et HTTP-svar. Først derefter starter den destinationens TLS inde i tunnelen. Med en HTTPS-proxy kommer en separat TLS-forbindelse til proxyen først.
En TLS-parser, der modtager en HTTP-fejlside eller anden almindelig tekst, kan rapportere en protokolfejl. Formuleringen fastslår ikke, hvilke TLS-versioner webstedet understøtter, eller om webstedet overhovedet blev kontaktet.
- Notér proxyens URL, inklusive dens skema, og endepunktets dokumenterede protokol.
- Find ud af, om fejlen skete før et CONNECT-svar, under destinationens TLS eller under verificeringen af proxyens eget certifikat.
- Kontrollér de faktiske klient- og afhængighedsversioner, når du sammenligner en gammel omvej. Tidligere proxyimplementeringer behandlede nogle gange et skema anderledes.
Flere rettelser kan være forkerte af forskellige grunde. HTTP-proxylisten tilbyder almindelige HTTP-endepunktskandidater til offentlige anmodninger, der er tilladt gennem en sådan rute. Et almindeligt HTTP-endepunkt kræver HTTP-proxyskemaet; et reelt TLS-aktiveret endepunkt bør beholde HTTPS og dets certifikatverificering. En proxy, der afviser CONNECT, kræver en understøttet tjeneste eller politik, ikke en vilkårlig nedgradering af biblioteket.
Behold den første observerbare fejl. Deaktivering af certifikatverificering kan ikke få en lytter, der kun taler HTTP, til at tale TLS, og valget af en gammel cipher-politik kan ikke forklare en HTTP-afvisning sendt før webstedets håndtryk.