ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] unable to get local issuer certificateError: unable to verify the first certificateUNABLE_TO_GET_ISSUER_CERT_LOCALLYrequests.exceptions.SSLError ... certificate verify failedI proxy aziendali, alcuni antivirus e la maggior parte dei dispositivi di ispezione VPN decifrano l'HTTPS per guardarci dentro, poi emettono un proprio certificato. I sistemi operativi ricevono quella radice installata centralmente; Python, Node e Go spesso includono o usano un proprio archivio di fiducia e non la vedono mai. È esattamente lo scarto in cui curl funziona e il tuo codice no.
L'errore compare anche senza alcun proxy quando l'elenco di CA incluso in un ambiente è obsoleto, tipicamente su una vecchia immagine di container o su una VM di lunga durata mai aggiornata.
Non è un problema di autenticazione. La richiesta non completa mai l'handshake, quindi nessuna chiave viene inviata e nulla arriva ai log del provider.
Guarda chi ha firmato il certificato che stai effettivamente ricevendo:
openssl s_client -connect YOUR_DOMAIN:443 -servername YOUR_DOMAIN </dev/null 2>/dev/null \
| openssl x509 -noout -issuer -subject
Se l'emittente è una CA pubblica, l'archivio di fiducia del tuo ambiente è obsoleto. Se riporta il nome della tua azienda, di un dispositivo di sicurezza o di un produttore di antivirus, il traffico viene intercettato e devi installare quella radice dove il tuo ambiente la cerca.
Ultima verifica: 2026-10-01. Scritto a partire da problemi diagnosticati su un gateway compatibile con OpenAI in produzione, non raccolto da altri siti.