Senza KYC — niente documento, selfie o altri documenti. Paga in crypto: BTC, USDT, USDC, ETH, SOL, LTC
Lingua: Italiano
Inizia ora

Riferimento errori proxy · Errori di connessione e TLS

SSL CERTIFICATE_VERIFY_FAILED tramite un proxy

Errore certificato TLS nel client: il messaggio esatto in ogni strumento, le cause probabili in ordine e la soluzione che funziona.

Ultimo aggiornamento: · 4 minuti di lettura

Risposta rapida

Cosa significa SSL: CERTIFICATE_VERIFY_FAILED con un proxy?

CERTIFICATE_VERIFY_FAILED significa che il tuo client non è riuscito a convalidare il certificato TLS del sito web. Attraverso un proxy CONNECT come il gateway CrawlRelay, TLS avviene end-to-end, quindi il proxy non ne è la causa. Controlla da parte tua: un bundle CA obsoleto, antivirus o firewall aziendale che ispezioni HTTPS, o un orologio di sistema errato. Mai risolvere con verify=False in produzione.

SSL: CERTIFICATE_VERIFY_FAILED a colpo d'occhio

ErroreSSL: CERTIFICATE_VERIFY_FAILED
TipoErrore certificato TLS nel client
Inviato daLa tua libreria TLS, quando non riesce a convalidare il certificato del sito web
Definito inX.509 path validation: RFC 5280; TLS 1.3: RFC 8446
Riprovarlo?No. Sistema il trust store o la rete
Prima verificaTesta la stessa URL senza il proxy sulla stessa macchina

Cosa significa SSL: CERTIFICATE_VERIFY_FAILED?

Durante la stretta di mano TLS, il sito invia una catena di certificati. Il tuo client la verifica contro una lista di autorità di fiducia, il trust store, e controlla nomi e date. Se qualche controllo fallisce, si ferma.

Con un tunnel CONNECT, il proxy passa la stretta di mano intatta, quindi il certificato che vedi è quello reale del sito. Qualcosa che inserisce il proprio certificato, come software di ispezione, o un trust store obsoleto sulla tua macchina, è la causa più comune.

Com'è CERTIFICATE_VERIFY_FAILED in Python, curl, Node.js e browser?

Lo stesso errore si presenta in modo diverso in ogni strumento. Questi sono i messaggi da cercare nei log:

  • Python: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate
  • Node.js: UNABLE_TO_GET_ISSUER_CERT_LOCALLY o SELF_SIGNED_CERT_IN_CHAIN
  • curl: curl: (60) SSL certificate problem: unable to get local issuer certificate
  • Browser: NET::ERR_CERT_AUTHORITY_INVALID

Cosa causa CERTIFICATE_VERIFY_FAILED?

Probabilmente prima:

  • Un bundle CA obsoleto, ad esempio un vecchio pacchetto certifi in Python.
  • Ispezione HTTPS da parte di antivirus, firewall aziendale o proxy di debug, che presenta il proprio certificato.
  • Orologio di sistema errato che fa sembrare i certificati validi scaduti o non ancora validi.
  • Un sito con catena rotta, mancante di un certificato intermedio.
  • Un'immagine container senza il pacchetto di certificati CA di sistema.

Come diagnostico CERTIFICATE_VERIFY_FAILED passo dopo passo?

  1. Esegui la stessa richiesta senza il proxy. Se fallisce anche lì, il proxy non è coinvolto.
  2. Stampa l'emittente del certificato con openssl s_client o curl -v: un emittente che coincide con antivirus o firewall indica ispezione.
  3. Controlla data e ora di sistema.
  4. Aggiorna il bundle CA e riprova.
Testa l'URL che fallisce con curl (porta HTTP, verbose)
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL

Come risolvo CERTIFICATE_VERIFY_FAILED?

  • Aggiorna certifi (pip install -U certifi) o il pacchetto CA del sistema.
  • Aggiungi il certificato di ispezione aziendale al trust store se la tua rete richiede ispezione, oppure esegui lo scraper fuori da quella rete.
  • Sistema l'orologio con sincronizzazione di rete.
  • Installa i certificati CA nelle immagini container minimaliste, ad esempio il pacchetto ca-certificates.
  • Non disabilitare la verifica nel codice che invia credenziali o raccoglie dati critici.

Devo riprovare dopo CERTIFICATE_VERIFY_FAILED?

Non riprovare: lo stesso trust store fallirà nello stesso modo. Sistema il trust store, l'orologio o il percorso di rete e riprova.

Come si applica SSL: CERTIFICATE_VERIFY_FAILED a CrawlRelay?

La porta HTTP di CrawlRelay tunnelizza HTTPS con CONNECT, quindi il certificato controllato dal client è quello inviato dal sito. Se l'errore appare solo tramite il gateway e mai senza, contatta il supporto con il nome host di destinazione e l'errore completo per verifiche sull'uscita.

Gateway: gw.crawlrelay.com, porta 7777 (HTTP, HTTPS tramite CONNECT) e porta 7778 (SOCKS5). Formato username: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Correlato: SSL: WRONG_VERSION_NUMBER · Connection reset · Guida Python.

SSL: CERTIFICATE_VERIFY_FAILED: domande frequenti dagli sviluppatori

Un proxy può causare errori di certificato SSL?

Un proxy che intercetta può, perché presenta il proprio certificato. Un proxy tunnel CONNECT no, perché inoltra solo byte criptati e non vede il contenuto della stretta di mano. Esegui la stessa richiesta senza proxy: se l'errore persiste, la causa è sulla tua macchina o rete.

È sicuro usare verify=False per lo scraping?

Non come soluzione. Nasconde l'ispezione e catene rotte, e un attaccante sul percorso potrebbe leggere o modificare il traffico, inclusi token e cookie. Usalo solo per un test locale rapido, mai in un processo automatico o che invia credenziali.

Perché fallisce in Docker ma funziona sul mio portatile?

Le immagini container minimaliste spesso non includono certificati CA, quindi nessun certificato può essere validato. Installa il pacchetto CA di sistema nell'immagine o affidati al bundle certifi in Python. Controlla anche che l'orologio del container sia corretto.

Altri errori proxy in questo riferimento

Codici di stato HTTP

Errori del browser e client

Errori di connessione e TLS

Proxy residenziali con documentazione che copre i casi di errore

Proxy residenziali CrawlRelay da 0,50 USD/GB, traffico che non scade mai.

Da 0,50 USD/GB · senza KYC

Inizia ora