2013-04-26 3 views
19

PFX 인증서에서 PEM 인증서를 만들고 확인하려고했습니다. 그러나 나는이 문제에 부딪쳤다. 몇 가지 대답을 찾으려고 노력했지만, 나는 그것을 고칠 방법을 모른다. 조언 해 주시겠습니까? 대단히 감사합니다.0 - 깊이 조회시 openssl verify - error 20 : 로컬 발급자 인증서를 얻을 수 없습니다.

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

닫기를. -CAfile과 함께 CA의 루트 인증서를 추가해야합니다. 최종 엔티티 인증서가 아닙니다. 뭔가 같이 : 중간 인증서가있는 경우 또한

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 속성이 true이면 최종 엔티티 인증서가 다른 인증서를 생성 할 수 있습니다. – jww

+1

자기 서명으로 그렇게 불가능한가요? 확실하지 않습니다. 이 경우에는 인증서가 하나뿐이기 때문에 그렇습니까? 따라서 자체 서명 된 CA는 CA가 될 수 없으며 CA가없는 경우 사용자는 확인할 수 없습니다. 누락 된 것이 있거나 일반적으로 SSL을위한 나쁜 설계입니다. –