C ++ / OpenSSL: использовать корневой CA из буфера, а не из файла (SSL_CTX_load_verify_locations) - PullRequest
12 голосов
/ 19 февраля 2011

Я использую OpenSSL для проверки сертификата сервера. Поскольку OpenSSL поставляется без каких-либо встроенных корневых CA, мы должны сами распространять сертификат корневого CA с нашим программным обеспечением (мы статически связываем OpenSSL). Обычно способ сделать это - распространить файл сертификата в формате PEM и вызвать SSL_CTX_load_verify_locations.

Однако эта функция берет путь к файлу / каталогу и считывает файлы корневых сертификатов непосредственно из файловой системы. Мы действительно хотели бы иметь возможность жестко закодировать сертификат в наш двоичный файл вместо его сохранения в файловой системе.

Другими словами, нам бы очень хотелось иметь такую ​​функцию, как SSL_CTX_load_verify_locations, которая принимает X509 * вместо пути к файлу.

Существует ли что-то подобное? или есть простой способ взломать это вместе? Похоже, мы не можем найти много информации об этом.

Большое спасибо за любые предложения!

1 Ответ

19 голосов
/ 21 февраля 2011

Функция SSL_CTX_get_cert_store() может использоваться для получения дескриптора хранилища сертификатов, используемого для проверки (X509_STORE *), а затем функция X509_STORE_add_cert()openssl/x509_vfy.h) может использоваться для добавления сертификата непосредственно в это хранилище сертификатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...