在STACK_OF(X509)中验证证书链

Verify a certificate chain in STACK_OF(X509)

本文关键字:验证 证书链 X509 STACK OF      更新时间:2023-10-16

所以我在STACK_OF(X509)中存储了一个证书链。这就是我用它做的:

STACK_OF(X509) *chain = SSL_get_peer_cert_chain(ssl);
X509_STORE_CTX* newCert = X509_STORE_CTX_new();
if(newCert){
    X509_STORE_CTX_set_chain(newCert, chain);
    std::cout << X509_verify_cert(newCert) << std::endl;
}
std::cout << "ERROR : " << X509_STORE_CTX_get_error(newCert) << std::endl;

问题是X509_verify_cert(newCert)返回-1,这意味着X509_STORE_CTX的初始化没有正确关闭。我错过了什么?

我想,这与STACK_of(X509)的使用有关。

你不应该在apps/verify.c上只复制一半的源代码。如果你深入研究,你会发现,在其他行中,

 286         if(!X509_STORE_CTX_init(csc,ctx,x,uchain))