我从PFX证书创建了PEM证书并想要验证它。 然而,我遇到了这个问题,试图找到一些答案,但我没有,因此我不知道如何解决它。 你能建议吗? 非常感谢你。
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 :(得分:19)
的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中众所周知的问题。从本质上讲,客户端(像我一样)不知道去哪里丢失中间证书。
答案 1 :(得分:0)
另一种情况是pathlen
只能在CA:TRUE
中的basicConstraints
时设置。
示例:
basicConstraints=CA:TRUE,pathlen:10 # Okay
basicConstraints=CA:FALSE,pathlen:10 # Invalid!