2013-04-26 3 views
19

Я создал сертификат PEM из сертификата PFX и хотел его проверить. Однако я столкнулся с этой проблемой, попробую найти ответы, но я didnt и поэтому я не знаю, как это исправить. не могли бы вы посоветоваться? большое спасибо.openssl verify - ошибка 20 при поиске по глубине 0: не удалось получить сертификат локального эмитента

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

Такая же проблема здесь со свежим сертификатом, выпущенным нам и установленным на сервере tomcat. –

ответ

14

OpenSSL> проверить -CAfile C: \ mycert.pem C: \ mycert.pem

Закрыть. Вам необходимо добавить корневой сертификат CA с -CAfile; а не сертификат конечного объекта. Что-то вроде:

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

Кроме того, если имеется промежуточный сертификат, то он должен быть добавлен в mycert.pem. Таким образом, у mycert.pem на самом деле будет два (или более) сертификата (а не один).

Добавление всех необходимых сертификатов в mycert.pem в попытке построить действующую цепочку решает проблему "which directory". Это хорошо известная проблема в PKI. По сути, клиент (например, я) не знает, куда идти, чтобы получить отсутствующие промежуточные сертификаты.

+0

В случае самоподписанного сертификата не является самоподписанным сертификатом как сертификата CA, так и сертификата предприятия? –

+0

@WilburWhateley - Нет. Базовые ограничения и 'CA: FALSE' должны быть установлены. 'CA: TRUE' не может быть установлен. Если атрибут CA был истинным, сертификаты конечной сущности могли отличать другие сертификаты. – jww

+1

Так невозможно самоподписанное? Не ясно. Потому что в этом случае есть только один сертификат, верно? Таким образом, самоподписанный не может быть CA, и без CA вы не можете проверить ... Есть ли что-то, что мне не хватает, или это вообще плохой дизайн для SSL. –

Смежные вопросы