Le richieste Wget e Python non riescono a convalidare i certificati SSL, ma i browser non mostrano alcun avviso

7

Ho provato a wget un sito web, che è tornato a dire:

ERROR: The certificate of ‘website.com’ is not trusted. ERROR: The certificate of ‘website.com’ hasn't got a known issuer.

da una macchina e da un'altra

ERROR: cannot verify website.com's certificate, issued by ‘CN=GlobalSign Organization Validation CA - SHA256 - G2,O=GlobalSign nv-sa,C=BE’: Unable to locally verify the issuer's authority. To connect to website.com insecurely, use '--no-check-certificate'.

Come controllo aggiuntivo ho usato la libreria delle richieste di Python per vedere cosa direbbe:

requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",)

Tuttavia, quando il sito Web è stato caricato in Firefox e Chrome, nessuno dei due ha avuto problemi con il certificato del sito web. Non dovrebbero anche avvertirmi di eventuali problemi con il certificato SSL del sito?

    
posta George Broughton 21.03.2018 - 08:46
fonte

2 risposte

13

Non è chiaro quale sia esattamente il tuo problema poiché non ci sono informazioni sufficienti per riprodurlo. Ma, supponendo che tu stia usando una versione recente di wget con un supporto per SNI, immagino che sia

  • Il certificato dei server viene emesso da una CA che è attendibile dal browser ma non dall'archivio CA del sistema. Chrome e Firefox utilizzano negozi CA differenti rispetto a wget o richieste. Ciò può accadere ad esempio se il certificato dei server (così come ricevuto dal client) è stato emesso da una CA non pubblica, come accade spesso quando si accede a siti intranet o se esiste un firewall utilizzato con l'intercettazione SSL. Soprattutto sui sistemi Windows potrebbe anche accadere che l'archivio certificati per wget e le richieste sia semplicemente vuoto poiché l'archivio CA dei sistemi non è compatibile con OpenSSL.
  • Oppure il sito non è configurato correttamente e il server non invia un certificato intermedio necessario. I browser desktop spesso aggirano questo problema, altri programmi no. Controlla questo sito con SSLLabs e cerca i problemi relativi alla catena.
risposta data 21.03.2018 - 09:12
fonte
0

Puoi provare a installare certifi e quindi usare requests ? Questo utilizzerà gli stessi certificati di root di Mozilla, quindi dovresti vedere lo stesso comportamento del tuo browser.

    
risposta data 21.03.2018 - 15:12
fonte

Leggi altre domande sui tag