WRONG_VERSION_NUMBER con un proxy: verifica HTTP rispetto a HTTPS
Diagnostica una discrepanza di trasporto del proxy prima di ridurre le versioni TLS o modificare le impostazioni dei certificati in risposta a un errore SSL fuorviante.
L'errore dice “versione sbagliata”, quindi è tentante iniziare a cambiare le versioni TLS. Con un proxy, verifica una possibilità precedente: il client ha inviato un handshake TLS a una porta che attendeva HTTP semplice?
Una destinazione come https://example.com/ e un proxy come http://proxy.example:8080 sono una coppia ordinaria. Cambiare il secondo URL in HTTPS dice al client di cifrare la conversazione con il proxy stesso. Non è un'istruzione per consentire i siti HTTPS.
Individua la prima conversazione TLS
Con un proxy HTTP, il client può prima inviare CONNECT e ricevere una risposta HTTP. Solo dopo avvia il TLS di destinazione dentro il tunnel. Con un proxy HTTPS, viene prima una connessione TLS separata verso il proxy.
Un parser TLS che riceve una pagina di errore HTTP o altro testo in chiaro può segnalare un errore di protocollo. La formulazione non stabilisce quali versioni TLS supporti il sito, né che il sito sia stato contattato.
- Annota l'URL del proxy, incluso lo schema, e il protocollo documentato dell'endpoint.
- Stabilisci se l'errore è avvenuto prima di una risposta CONNECT, durante il TLS di destinazione o durante la verifica del certificato del proxy stesso.
- Controlla le versioni effettive del client e delle dipendenze quando confronti un vecchio aggiramento. Implementazioni proxy precedenti talvolta trattavano uno schema in modo diverso.
Diverse correzioni possono essere sbagliate per motivi diversi. La lista di proxy HTTP offre candidati ordinari di endpoint HTTP per richieste pubbliche consentite da quel percorso. Un endpoint HTTP semplice richiede lo schema proxy HTTP; un endpoint realmente abilitato TLS dovrebbe mantenere HTTPS e la verifica del certificato. Un proxy che rifiuta CONNECT richiede un servizio o una policy supportati, non un declassamento arbitrario della libreria.
Conserva il primo errore osservabile. Disattivare la verifica dei certificati non può far parlare TLS a un listener solo HTTP, e scegliere una vecchia policy di cifratura non può spiegare un rifiuto HTTP inviato prima dell'handshake del sito.