certificati google corretta CA [chiuso]

5

Vedo i certificati di link

Quindi, quando ho richiesto tramite cURL, se ho puntato CURLOPT_CAINFO su tali certificati ( GeoTrust Global CA e Google Internet Authority G2 in un pacchetto o altro), la convalida del certificato di Google sarebbe stata superata. Ma l'unica CA che lo fa è il Equifax Secure CA (scoperto con la semplice enumerazione di git's CA bundle ). Qualcuno potrebbe spiegare perché è così? Grazie mille.

UPD: non è solo il comportamento di Google, anche un altro sito si comporta in questo modo, quindi suppongo che io interpreti male qualcosa (che è probabile) o che vengano mostrate alcune informazioni sbagliate (ancora, perché sta succedendo)

    
posta zogby 12.03.2014 - 13:20
fonte

1 risposta

5

Questo è molto probabilmente un "ponte" obsoleto che ora conduce al posto sbagliato.

Ci sono due catene di fiducia valide per questo certificato. Esiste un certificato radice per GeoTrust Global CA, valido a partire dal 2002, che si trova negli attuali negozi Windows / IE e Firefox (e Java); e anche un cert "cross-signed" per quella CA sotto Equifax Global CA come segue:

Data:
    Version: 3 (0x2)
    Serial Number: 1227750 (0x12bbe6)
Signature Algorithm: sha1WithRSAEncryption
    Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
    Validity
        Not Before: May 21 04:00:00 2002 GMT
        Not After : Aug 21 04:00:00 2018 GMT
    Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
    Subject Public Key Info: <snipped: same as root>
   X509v3 extensions:
        X509v3 Authority Key Identifier:
            keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:98:90:9F:D4
        X509v3 Subject Key Identifier:
            C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
        X509v3 Basic Constraints: critical
            CA:TRUE
        X509v3 Key Usage: critical
            Certificate Sign, CRL Sign
        X509v3 CRL Distribution Points:
            Full Name:
              URI:http://crl.geotrust.com/crls/secureca.crl
        X509v3 Certificate Policies:
            Policy: X509v3 Any Policy
              CPS: https://www.geotrust.com/resources/repository
<snip signature>

Si tratta di un certificato "ponte", spesso utilizzato quando viene creata una nuova radice CA rinominata (qui) o nuova e desidera sfruttare temporaneamente il trust esistente di una root CA meno recente; la radice di Equifax è valida dal 1998, quindi nel 1999 e 2000 c'erano molti clienti che avrebbero conosciuto la radice di Equifax e non la radice di GeoTrust. 12 anni dopo dovrebbe essere obsoleto.

L'esecuzione di "openssl s_client" conferma che www.google.com.ua fornisce nell'handshake SSL il proprio certificato, il certificato intermedio G2 di Google Internet Authority e il certificato del bridge. IE, FF e Java sono abbastanza intelligenti da ignorare il bridge e utilizzare la root GeoTrust che hanno memorizzato internamente. OpenSSL, che usa curl, non lo è, o almeno non ancora; quindi devi dire a curl di dare a OpenSSL la radice di Equifax. (La versione OpenSSL 1.0.2, attualmente in versione beta, è stata annunciata per avere miglioramenti nell'area della convalida della catena cert, che non ho ancora esaminato in dettaglio.)

EDIT 3/13: Non posso commentare la mia risposta (!) aggiungendo qui. Come ho detto, ci sono due certificati per GeoTrust Global CA: una radice e un "ponte".

IE / Windows e FF DO hanno la radice GeoTrust; l'hai già visto in Certification Path in IE o FF con la pagina web aperta, oppure puoi guardare direttamente nei truststores con InternetOptions / Content / Certificates / TrustedRoots e Tools / Options / Advanced / Certificates / Authorities. Entrambi anche hanno la radice di Equifax, ma non usarla qui. Sia IE che FF visualizzano il percorso di certificazione usato anche se differisce da ciò che il server ha inviato ; potrebbe essere "sbagliato" in un modo di guardare ma "giusto" in un altro.

Un certificato radice è sempre autofirmato; è necessario essere una radice (non sempre per un'ancora, ma lasciarla da parte). Il cert della radice GeoTrust è una radice. Il cert del ponte GeoTrust non è una radice, ma si collega al cert della radice Equifax che è una radice. E, ancora una volta, la radice di Equifax è quella che serve a curl + openssl.

EDIT 9/01: link conferma che questo è un ponte che riporta a Equifax.

UPDATE 2017/03/28 : in primo luogo, OpenSSL 1.0.2 ha aggiunto -trusted_first che utilizza la root GeoTrust se presente e ignora il cert bridge. In secondo luogo, questo è ora più importante perché la radice di Equifax è stata rimossa dal truststore Mozilla / NSS, e quindi il file CA del progetto di arricciatura utilizzato da molti client, vedere link .

    
risposta data 13.03.2014 - 07:43
fonte

Leggi altre domande sui tag