我正在尝试将多个证书加载到SSL_CTX中。
通过查看文档,我能够使用以下两种方法建立SSL连接:
这两者之间有区别吗?我在StackOverflow上看到SSL_CTX_use_certificate不适用于自签名证书吗? (Loading CA certificate from memory)为什么呢?我在任何地方的文档中都没有看到它。 (自签名是什么意思?)
*对于#2来说,多次调用SSL_CTX_use_certificate是否可以替换现有证书?我需要致电SSL_CTX_add_extra_chain_cert吗?
答案 0 :(得分:2)
X509_STORE
用于在证书验证期间构建证书信任链。因此,在验证对等证书时,将使用X509_STORE_add_cert
添加的任何证书。
SSL_CTX_use_certificate
用于针对对等方设置用于身份验证的本地证书,即,用于在服务器上设置服务器证书,在客户端上设置客户端证书。它必须附带设置私钥的功能,例如SSL_CTX_use_PrivateKey
。 SSL_CTX_use_certificate
可以被多次调用,并且将替换现有证书或添加另一个证书:即,使用较新版本的OpenSSL,一个证书可能同时具有RSA和ECDSA证书。
SSL_CTX_use_certificate不适用于自签名证书吗?
使用SSL_CTX_use_certificate
时,OpenSSL不在乎证书是否是自签名的。希望将证书作为身份验证的通信对等方会关心,并且可能会抱怨,因为未找到本地信任锚来验证证书。