2013-04-26 22 views
19

Ho creato un certificato PEM da un certificato PFX e volevo verificarlo. Comunque mi sono imbattuto in questo problema, provo a trovare alcune risposte, ma non l'ho fatto e quindi non so come risolverlo. potresti per favore un consiglio? grazie mille.openssl verify - error 20 a 0 depth seekup: impossibile ottenere il certificato emittente locale

C:\OpenSSL-Win32\bin>set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg 

C:\OpenSSL-Win32\bin>openssl 
OpenSSL> verify C:\mycert.pem 
C:\mycert.pem: C = CZ, ST = Sprava zakladnich registru, L = "Obec=Praha,Ulice=Na Vapence,PSC=13000", O = 72054506, OU = 4333, CN = tstcawilly.szr.local 
error 20 at 0 depth lookup:unable to get local issuer certificate 
error in verify 
OpenSSL> 
OpenSSL> verify -CAfile C:\mycert.pem C:\mycert.pem 
C:\mycert.pem: C = CZ, ST = Sprava zakladnich registru, L = "Obec=Praha,Ulice=Na Vapence,PSC=13000", O = 72054506, OU = 4333, CN = tstcawilly.szr.local 
error 20 at 0 depth lookup:unable to get local issuer certificate 
error in verify 
OpenSSL> 
+0

Lo stesso problema qui con un nuovo certificato rilasciato a noi e installato su un server tomcat. –

risposta

14

OpenSSL> verificare -CAfile C: \ mycert.pem C: \ mycert.pem

Chiudi. È necessario aggiungere il certificato di origine della CA con -CAfile; e non il tuo certificato di entità finale. Qualcosa di simile:

openssl verify -CAfile C:\ca-cert.pem C:\mycert.pem 

Inoltre, se v'è un certificato intermedio, quindi ha bisogno di essere aggiunto alla mycert.pem. Quindi mycert.pem avrà effettivamente due (o più) certificati (anziché uno).

L'aggiunta di tutti i certificati richiesti a mycert.pem nel tentativo di creare una catena valida risolve il problema "which directory". È un problema ben noto in PKI. In sostanza, un cliente (come me) non sa dove andare per ottenere i certificati intermedi mancanti.

+0

Nel caso di un certificato autofirmato, non è il certificato autofirmato sia il certificato CA che il certificato entità? –

+0

@WilburWhateley - No. I vincoli di base e 'CA: FALSE' devono essere impostati. 'CA: TRUE' non può essere impostato. Se l'attributo CA era true, i certificati dell'entità finale potevano coniare altri certificati. – jww

+1

Quindi impossibile con autofirmato? Non chiaro. Perché in questo caso c'è un solo certificato, giusto? Quindi un autofirmato non può essere una CA, e senza una CA, non è possibile verificare ... C'è qualcosa che mi manca, o è generalmente una cattiva progettazione per SSL. –