openssl - 在 Bash 中验证 PEM 证书有错误,但返回代码正常

标签 openssl certificate pem verify

我想验证证书是否由子 CA 颁发。我使用以下命令:

openssl verify -verbose -CAfile "/usr/share/jenkins/sub-ca.crt" cert.crt

cert.crt 在这种情况下是自签名证书,因此它不是由子 ca.crt 颁发的。 sub-ca.crt是我们的root-ca颁发的证书。 当我运行该命令时,它显示正确的错误:

error 18 at 0 depth lookup:self signed certificate

但是在这一行下面 好的 显示,当我用 $? 检查返回代码时我得到 0 作为返回码。 为什么发生错误时命令返回 OK?

最佳答案

verify 命令尝试建立证书链,验证链是否完整,检查目的,检查信任设置,检查整个链的有效性(例如,针对时间等)等

由于verify是一个诊断工具,它的返回代码并不意味着证书已成功验证,而是意味着该命令成功运行完成,没有任何 fatal error 。某些类别的错误被视为非 fatal error ,例如:自签名证书、证书过期、处理证书扩展时出错等。非 fatal error 仍将显示,但不会影响最终的“OK”结果。

关于openssl - 在 Bash 中验证 PEM 证书有错误,但返回代码正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40740653/

相关文章:

asp.net - 自制SSL的绿条

java - 将信任链导入 key 对或将其导入 keystore 或两者

openssl - 使用 OpenSSL 以编程方式将 .PEM 证书转换为 .PFX

PHP Openssl 解密 AES Mysql 加密

openssl - X.509 : Private/Public Key

openssl - 如何让 openssl 3 生成正确类型的 RSA pem 文件?

security - 为什么多次调用 X509Certificate2.Export(Pkcs12) 返回不同的结果?

java - 从 .pem 文件加载私钥时出现无效 key 格式异常

c++ - OpenSsl 无法读取 DER 格式的证书

由于 "<urlopen error [SSL: NO_CIPHERS_AVAILABLE] no ciphers available (_ssl.c:661)>",Python HTTPS 下载失败