SSL_CTX_set_cert_store不会在X509_STORE上增加ref

时间:2018-03-07 04:05:28

标签: openssl

我正在使用OpenSSL 1.1.0g并且我有一个X509_STORE,其中包含所有根CA证书。我正在创建多个SSL_CTX对象,以使用不同的私钥在多个端口上为传入连接提供服务。 SSL_CTX对象将使用单个X509_STORE通过SSL_CTX_set_cert_store()函数验证CA.我注意到当任何SSL_CTX对象通过SSL_CTX_free()获得空闲时,X509_STORE上的引用计数递减并且变为0.我所期望的是执行SSL_CTX_set_cert_store()应该在X509_STORE上添加引用对象,但看看似乎不是这样的OpenSSL源。我不知道为什么在SSL_CTX_free()上它正在执行X509_STORE_free()但在第一次执行SSL_CTX_set_cert_store()时从不执行X509_STORE_up_ref()。我解决这个问题的方法是在执行SSL_CTX_set_cert_store()时自己执行X509_STORE_up_ref()。但是,我不确定这是一个错误还是设计错误。如果是设计的话,我不会看到背后的理由。

1 个答案:

答案 0 :(得分:0)

我想你想要going from one profile to another /users/1 -> /users/2. 。请参阅https://wiki.openssl.org/index.php/Manual:SSL_CTX_set_cert_store(3)下的限制,或更直接地https://wiki.openssl.org/index.php/Manual:SSL_CTX_set1_verify_cert_store(3)