Подтвердить что ты не робот

С++/OpenSSL: используйте корневой ЦС из буфера, а не файла (SSL_CTX_load_verify_locations)

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

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

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

Есть ли что-то подобное? или есть простой способ взломать его вместе? Мы не можем найти много информации об этом.

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

4b9b3361

Ответ 1

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