Закрепление SSL-сертификата с помощью libcurl

Я хотел бы знать, достаточно ли этого примера для обеспечения закрепления сертификата с помощью libcurl: http://curl.haxx.se/libcurl/c/cacertinmem.html

потому что я обнаружил, что curl также позволяет http://curl.haxx.se/libcurl/c/CURLOPT_PINNEDPUBLICKEY.html

Поскольку я буду использовать самозаверяющий сертификат и доверяю только ему, я не знаю, действительно ли это необходимо прикреплять.

резюме: Может ли соединение быть скомпрометировано, если я только добавлю свой сертификат (самоподписанный) в хранилище сертификатов x509, как в примере? мне нужно добавить дополнительные проверки? мне нужно использовать опцию CURLOPT_PINNEDPUBLICKEY?

Благодарю.

1 ответ

Решение

Другой пример можно найти в реализации новой опции curl в git 2.8 (март 2016 года):

Смотрите коммит aeff8a6 (15 февраля 2016 г.) Кристофа Эггера ( siccegge )
(Объединено Юнио С Хамано - gitster - в комитете e79112d, 24 февраля 2016 г.)

http: реализовать закрепление открытого ключа

Добавить http.pinnedpubkey опция конфигурации для закрепления открытого ключа. Это позволяет любую строку, поддерживаемую libcurl - base64(sha256(pubkey)) или же filename полного открытого ключа.

Если cURL не поддерживает закрепление (слишком старое), выведите предупреждение пользователю.

git config страница руководства упоминает:

http.pinnedpubkey:

Открытый ключ сервиса https.
Это может быть имя файла открытого ключа в кодировке PEM или DER или строка, начинающаяся с ' sha256// 'затем следует хэш открытого ключа sha256 в кодировке base64. Смотрите также https://curl.haxx.se/libcurl/c/CURLOPT_PINNEDPUBLICKEY.html.
git завершит работу с ошибкой, если эта опция установлена, но не поддерживается cURL.

Другие вопросы по тегам