Определите CA CA во время компиляции для libcurl

Я построил libcurl для Windows x64 с OpenSSL. Если я укажу CA-информацию с помощью команды libcurl, как показано ниже, я смогу опубликовать свои данные через https.

curl_easy_setopt(curl_handle, CURLOPT_CAINFO, "C:\\cacert.pem");

Мой вопрос касается варианта 3 под заголовком «Проверка сертификата», найденного здесь: https://curl.haxx.se/docs/sslcerts.html

3) Добавьте сертификат CA для вашего сервера в существующее хранилище сертификатов CA по умолчанию. Хранилище сертификатов CA по умолчанию можно изменить во время компиляции с помощью следующих параметров конфигурации:

—with-ca-bundle = FILE: использовать указанный файл в качестве хранилища сертификатов CA. Сертификаты CA должны быть объединены в формате PEM в этот файл.

—with-ca-path = PATH: использовать указанный путь в качестве хранилища сертификатов CA. Сертификаты CA должны храниться как отдельные файлы PEM в этом каталоге. Возможно, вам понадобится запустить c_rehash после добавления туда файлов.

Эти параметры применяются только к командной строке или libcurl можно настроить во время компиляции, чтобы всегда использовать одну и ту же информацию CA?

Спасибо!

3

Решение

Эти параметры применяются только к командной строке или libcurl можно настроить во время компиляции, чтобы всегда использовать одну и ту же информацию CA?

cURL имеет те же настройки для времени компиляции. Точнее, это опции Autotools.

curl-7.57.0$ ./configure --help
`configure' configures curl - to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...
...

--with-ca-bundle=FILE   Path to a file containing CA certificates (example:
/etc/ca-bundle.crt)
--without-ca-bundle     Don't use a default CA bundle
--with-ca-path=DIRECTORY
Path to a directory containing CA certificates
stored individually, with their filenames in a hash
format. This option can be used with OpenSSL, GnuTLS
and PolarSSL backends. Refer to OpenSSL c_rehash for
details. (example: /etc/certificates)
--without-ca-path       Don't use a default CA path
--with-ca-fallback      Use the built in CA store of the SSL library
--without-ca-fallback   Don't use the built in CA store of the SSL library

Я иногда собираю cURL для тестирования на старых системах, таких как CentOS 5. Я считаю, что проще всего загрузить обновленную версию cacert.pem, а затем использовать --with-ca-bundle,

Если вы хотите использовать --with-ca-pathтогда это тот, где каждый сертификат хэшируется. Таким образом, у вас будет каталог с 120 или 150 файлами в нем. Файлы будут иметь такие имена, как NNNNNNNN.0, NNNNNNNN.1 и так далее. NNNNNNNN будет хеш, а коллизии разрешаются путем увеличения суффикса.

Я держу свой сценарий для создания CURL онлайн на Build-Scripts | build-curl.sh.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]