2013-04-26 11 views
19

Utworzono certyfikat PEM z certyfikatu PFX i chciałem go zweryfikować. Jednak wpadłem na ten problem, staram się znaleźć odpowiedzi, ale nie zrobiłem i dlatego nie wiem jak to naprawić. Czy mógłbyś doradzić? dziękuję bardzo.openssl verify - błąd 20 przy 0 sprawdzeniu głębokości: nie można uzyskać certyfikatu lokalnego wydawcy

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

Ten sam problem tutaj ze świeżym certyfikatem wydanym dla nas i zainstalowanym na serwerze Tomcat. –

Odpowiedz

14

OpenSSL> zweryfikować -CAfile C: \ mycert.pem C: \ mycert.pem

Zamknij. Należy dodać główny certyfikat urzędu certyfikacji pod numerem -CAfile; a nie twój certyfikat jednostki końcowej. Takim jak:

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

Ponadto, jeśli jest to certyfikat pośredni, to musi on być dodany do mycert.pem. Tak więc mycert.pem będzie faktycznie mieć dwa (lub więcej) certyfikatów (a nie jeden).

Dodanie wszystkich wymaganych certyfikatów do numeru mycert.pem w celu utworzenia prawidłowego łańcucha rozwiązuje problem "which directory". Jest to dobrze znany problem w PKI. Zasadniczo klient (taki jak ja) nie wie, dokąd się udać, aby uzyskać brakujące certyfikaty pośrednie.

+0

W przypadku certyfikatu z podpisem własnym, czy certyfikat z podpisem własnym nie jest certyfikatem urzędu certyfikacji i certyfikatu podmiotu? –

+0

@WilburWhateley - Nie. Podstawowe więzy i 'CA: FALSE' muszą być ustawione. 'CA: TRUE' nie może być ustawiony. Jeśli atrybut CA miałby wartość true, certyfikaty jednostek końcowych mogły wywoływać inne certyfikaty. – jww

+1

Niemożliwe z samopodpisaniem? Nie jasne. Ponieważ w tym przypadku istnieje tylko jeden certyfikat, prawda? Tak więc auto-podpis nie może być urzędem certyfikacji, a bez urzędu certyfikacji nie można zweryfikować ... Czy jest coś, czego mi brakuje, czy ogólnie jest to zły projekt dla protokołu SSL. –

Powiązane problemy