PEM_read_X509函数

问题描述 投票:1回答:1

PEM_read_X509函数是否可以使用私钥正确读取CA证书文件?它足以处理私钥部分吗?否则如果.pem文件包含私钥,则会出错?

encryption openssl ssl-certificate x509certificate
1个回答
0
投票

TLDR:是

几乎所有OpenSSL PEM_read[_bio]_XYZ函数都将接受一个文件(或等效文件),该文件包含XYZ类型的PEM块之前和/或之后的其他数据,并忽略其他数据,只要它们不在同一行上即可。这旨在允许描述PEM数据的“注释”,但也适用于other类型的PEM数据或仅与PEM数据完全无关的任意数据。特别地,PEM_read_X509将读取CERTIFICATE,X509 CERTIFICATE或TRUSTED CERTIFICATE类型的第一个块,并忽略任何东西,包括私有密钥块。

类似地,PEM_read_[algo_or_PKCS8]PrivateKey将读取[ENCRYPTED | RSA | DSA | EC]私钥类型的第一个块,而忽略其他所有内容,但是如果您尝试读取特定算法并且发现(第一个)私钥块是不同的类型。 (当然,如果找到了有效的块但已用密码加密,并且您没有通过参数或通过回调提供正确的密码,并且没有找到有效的块,它也会失败。)

我不确定通过'CA证书'是指证书for CA,还是证书由...发行 CA和for诸如网络服务器或邮箱。除了您,同事或您的组织设置的个人/本地或测试CA之外,大多数普通用户应该具有一个或多个CA的证书,但没有他们的私钥。而且,如果像真实的CA那样负责的人说LetsEncrypt在Stackoverflow上问这样的基本问题,我将非常警觉并担心该CA的能力以及安全性。

© www.soinside.com 2019 - 2024. All rights reserved.