使用OpenSSL并希望对负载验证位置使用多个CA_目录

使用OpenSSL并希望对负载验证位置使用多个CA_目录,openssl,x509,Openssl,X509,我希望将证书划分到多个目录中,而不是将大量证书放在单个目录中。当前,我的服务器调用SSL\u CTX\u load\u verify\u locations(),只能为其传递单个CA\u目录。看起来其他人也希望这样做(例如,请参阅),但我找不到有关适当解决方案的任何文档 因此,我开始查看SSL_CTX_load_verify_locations()的源代码,它是X509_STORE_load_locations()的包装,它调用X509_STORE_add_lookup()然后调用X509_lo

我希望将证书划分到多个目录中,而不是将大量证书放在单个目录中。当前,我的服务器调用SSL\u CTX\u load\u verify\u locations(),只能为其传递单个CA\u目录。看起来其他人也希望这样做(例如,请参阅),但我找不到有关适当解决方案的任何文档

因此,我开始查看SSL_CTX_load_verify_locations()的源代码,它是X509_STORE_load_locations()的包装,它调用X509_STORE_add_lookup()然后调用X509_lookup_add_dir()。因此,我可以简单地编写类似于X509_STORE_load_locations()的代码,但多次调用X509_LOOKUP_add_dir()(即,每个目录一次)

请告知

PS:在哪里可以找到X509的文档。。。openSSL提供的API?在www.openssl.org上,我只能找到,但找不到任何链接到openssl X509头中暴露的X509\u LOOKUP\u add_udir()或其他函数/宏。

我问:

因此,我可以简单地编写类似于X509_STORE_load_locations()的内容,但调用 X509_LOOKUP_add_dir()多次(即每个目录一次)

答案是肯定的,我编的代码起作用了


不过,如果有人能给我指一些关于X509的文档。。。在openssl的API,这将是非常感谢

由于当前答案缺少代码示例(
sslctx
是您的
SSL\u CTX
实例):

[我搜索如何添加时来到这里]

X509_STORE *store = SSL_CTX_get_cert_store(sslctx);
X509_LOOKUP *lookup = X509_STORE_add_lookup(store, X509_LOOKUP_hash_dir());
X509_LOOKUP_add_dir(lookup, "/first/cert/dir", X509_FILETYPE_PEM);
X509_LOOKUP_add_dir(lookup, "/second/cert/dir", X509_FILETYPE_PEM);
X509_LOOKUP_add_dir(lookup, "/another/cert/dir", X509_FILETYPE_PEM);