2011-10-04 22 views
3

而不是讓位於一個單獨的目錄證書的轉換,我想有跨越幾個目錄分爲證書。目前我的服務器調用,SSL_CTX_load_verify_locations(),爲此,只有一個CA_DIR可以傳遞。看起來像其他人想要做類似的(參見http://www.mail-archive.com/[email protected]/msg55557.html爲例),但我不能找到合適的解決方案的任何文件。使用OpenSSL和要使用多個CA_DIRs負載驗證地點

所以我盯着看源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,我只能找到http://www.openssl.org/docs/crypto/x509.html#,但我找不到任何一個環節X509_LOOKUP_add_dir(),或在OpenSSL X509頭暴露等功能/宏。

回答

0

我問:

所以我可以簡單地寫類似的東西X509_STORE_load_locations()但撥打 X509_LOOKUP_add_dir()多次(即一次爲每個目錄)?

答案是肯定的,我編寫了工作。

不過,如果任何人都可以點我對X509的一些文件......在OpenSSL的API,這將是非常感謝!

3

由於目前的答案缺少代碼示例(sslctx是你SSL_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); 

[我來到這裏的時候我搜索瞭如何添加multiple CA paths in libcurl]