Использование OpenSSL и желание использовать несколько CA_DIR для проверки местоположения загрузки - PullRequest
3 голосов
/ 04 октября 2011

Вместо того, чтобы иметь множество сертификатов, расположенных в одном каталоге, я хочу разделить сертификаты по нескольким каталогам. В настоящее время мой сервер вызывает SSL_CTX_load_verify_locations (), для которого может быть передан только один CA_DIR. Похоже, что другие хотели сделать подобное (см., Например, http://www.mail-archive.com/openssl-users@openssl.org/msg55557.html), но я не могу найти какую-либо документацию по соответствующей решение.

Поэтому я смотрел на источник для 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: Где я могу найти документацию по API X509 ..., предоставляемую openSSL? На www.openssl.org я могу найти только http://www.openssl.org/docs/crypto/x509.html#, но не могу найти ссылку на X509_LOOKUP_add_dir () или другие функции / макросы, представленные в заголовках openssl x509.

Ответы [ 2 ]

3 голосов
/ 28 июля 2012

Поскольку в текущем ответе отсутствует пример кода (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); 

[Я пришел сюда, когда искал, как добавить несколько путей CA в libcurl ]

0 голосов
/ 05 октября 2011

Я спросил:

Так что я могу просто написать что-то похожее на X509_STORE_load_locations (), но вызвать X509_LOOKUP_add_dir () несколько раз (т.е. один раз для каждого каталога)?

Ответ - да, то, что я написал, сработало.

Тем не менее, если бы кто-нибудь мог указать мне на некоторую документацию по API X509 ... в openssl, это было бы очень признательно!

...