openssl 验证 - 0 深度查找时出现错误 20 :unable to get local issuer certificate

标签 openssl certificate verify

我从 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>

最佳答案

OpenSSL> verify -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 中众所周知的问题。本质上,客户(像我一样)不知道去哪里获取丢失的中间证书。

关于openssl 验证 - 0 深度查找时出现错误 20 :unable to get local issuer certificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16235526/

相关文章:

openssl - 将 CA 签名的 JKS keystore 转换为 PEM

python - 使用 python OpenSSL 从私钥获取公钥

iphone - Xcode 4 - 在新的 Macintosh 安装上配置配置文件时出现 "Valid signing identity not found"错误

c++ - “AES_ctr128_encrypt”未在此范围内声明

ssl - MacOS Mojave 更新 SSL/TLS 后无法从 'https ://rubygems.org/' 安装 gems(?)

ssl - 使用 maven 运行 Selenium RC - https 站点有证书问题

c# - 在 PDF 上添加签名图像而不使用 iTextSharp 对其进行数字签名

java - Mockito 验证类对象 NotAMockException

php - 在 PHP 中验证签名的 PDF 文档

java - XML 数字签名验证