Ответ 1
Из docs:
- cacert (HTTPS) Сообщает curl использовать указанный файл сертификата для проверки партнера. Файл может содержать несколько сертификатов CA. сертификат должен быть в формате PEM. Если этот параметр используется несколько раз, последний будет использоваться.
- capath (HTTPS) Говорит завиток, чтобы использовать указанный каталог сертификатов для проверки партнера. Сертификаты должны быть в формате PEM, а каталог должен быть обработан с использованием утилиты c_rehash с openssl. Каталоги сертификатов не поддерживаются в Windows (потому что c_rehash использует символические ссылки для их создания). Использование --capath может позволить curl делать https-соединения намного эффективнее, чем используя -cacert, если файл -cacert содержит много сертификатов CA. Если эта опция используется несколько раз, последняя будет использоваться.
Итак, если вы укажете --cacert, сертификаты CA будут сохранены в указанном файле. Эти сертификаты CA используются для проверки сертификатов удаленных серверов, к которым подключается cURL.
Опция -capath используется для указания каталога, содержащего сертификаты CA, а не одного файла. Утилиту c_rehash следует использовать для подготовки каталога, т.е. Создания необходимых ссылок. Главное преимущество использования --capath, по-видимому, будет более эффективным, чем -cacert, если у вас есть много сертификатов CA.
Здесь script, который, вероятно, делает то, что делает c_rehash:
for file in *.pem; do ln -s $file `openssl x509 -hash -noout -in $file`.0; done
В обоих вариантах вы должны быть осторожны, чтобы включать только сертификаты CA из CA, которым вы доверяете. Если, например, вы знаете, что удаленные серверы всегда должны быть выданы с помощью сертификатов от YourCompanyCA, то это единственный сертификат CA, который вы должны включить.