Controllo dei certificati intermedi a livello di programmazione

0

Nessus sta segnalando che un "Certificato SSL non può essere considerato attendibile".

Ciò è dovuto al fatto che il certificato intermedio non si trova nel pacchetto di certificati presentato durante l'handshake TLS / SSL.

Ho esaminato un paio di thread simili:

Questo non è un problema in quanto molti browser scaricheranno certificati intermedi.

Se provo con openssl per verificare il certificato:

openssl s_client -connect example.com:443 -showcerts </dev/null

L'output mostra solo il primo cert e poi un errore unable to get local issuer certificate .

O se provo link ottengo lo stesso errore:

Chain of trust               NOT ok (chain incomplete)

C'è qualche metodo che posso usare che agisce nel modo in cui un browser dovrebbe e scarica qualsiasi cer intermedio?

Anche se c'è un modo per identificare dove scaricare certs intermedi sono felice di codificare qualcosa che farebbe questo, ma è solo sapere cosa cercare nella risposta del certificato del server.

Aggiornamento

Esecuzione

openssl x509 -in g0 -text

fornisce le informazioni AIA per gli URL di download cert intermedi

Authority Information Access: 
                OCSP - URI:http://ocsp.int-x3.letsencrypt.org
                CA Issuers - URI:http://cert.int-x3.letsencrypt.org/

Quindi possiamo eseguire:

wget http://cert.int-x3.letsencrypt.org/ -O intermed.der

Poi

openssl x509 -inform DER -in intermed.der -out intermed.pem -outform PEM

Poi

openssl x509 -in intermed.pem -text

Che dà

 Authority Information Access: 
                OCSP - URI:http://isrg.trustid.ocsp.identrust.com
                CA Issuers - URI:http://apps.identrust.com/roots/dstrootcax3.p7c

Ma questo è in un formato diverso e provare a convertirlo dà un errore:

openssl pkcs7 -print_certs -in dstrootcax3.p7c -out dstrootcax3
unable to load PKCS7 object
139884641126208:error:0906D06C:PEM routines:PEM_read_bio:no start line:crypto/pem/pem_lib.c:691:Expecting: PKCS7

Per quanto riguarda il commento di Steffen Ullrich , questo ha senso e spiegherebbe perché a volte funziona meglio di quanto il certificato non possa essere scaricato. Tuttavia, mi piacerebbe ancora capire questo con l'obiettivo finale di utilizzare openssl per verificare l'intera catena, compresi i certificati intermedi scaricabili.

    
posta SilverlightFox 07.11.2017 - 14:43
fonte

0 risposte