Мне нужно добавить файл сертификата .pem в комплект сертификатов CA по умолчанию, но я не знаю, где хранится комплект сертификатов CA по умолчанию.
Мне нужно добавить мой новый файл .pem в этот пакет по умолчанию. Я бы предпочел это сделать, чем указывать свое местоположение с помощью --capath
cURL четко знает, где искать, но я не вижу команд cURL, которые показывают это местоположение. Есть ли команда, которая покажет это место? Как мне его найти?
Согласно cURL:
Добавьте сертификат CA для вашего сервера в существующий комплект сертификатов CA по умолчанию. Путь по умолчанию для используемого пакета CA можно изменить, запустив configure с параметром --with-ca-bundle, указывающим путь по вашему выбору.
Спасибо
Бег curl
с участием strace
может дать вам ключ к разгадке.
strace curl https://www.google.com |& grep open
Много вывода, но ближе к концу я вижу:
open("/etc/ssl/certs/578d5c04.0", O_RDONLY) = 4
где хранятся мои сертификаты.
В curl bin /, то есть там, где находится двоичный файл curl, должна быть программа curl-config.
./curl-config --ca
дает путь установки пакета ca.
Я только что сделал whatis curl-config: «Получить информацию об установке libcurl», так что я предполагаю, что он будет доступен только в том случае, если libcurl был установлен, что, как я полагаю, является стандартным.
Я нашел простой способ: использовать --cacert
с неправильно имя файла, вывод покажет путь.
Пример:
~$ curl --cacert non_existing_file https://www.google.com
curl: (77) error setting certificate verify locations:
CAfile: non_existing_file
CApath: /etc/ssl/certs
Скопируйте свой ЦС в каталог / usr / local / share / ca-Certificates /
sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt
Обновите магазин CA
sudo update-ca-certificates
Удалите свой ЦС и обновите хранилище ЦС:
sudo update-ca-certificates --fresh
Установите пакет ca-сертификатов:
yum install ca-certificates
Включите функцию динамической конфигурации CA: update-ca-trust force-enable Добавьте его как новый файл в /etc/pki/ca-trust/source/anchors/
:
cp foo.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
Добавьте свой доверенный сертификат в файл /etc/pki/tls/certs/ca-bundle.crt
cat foo.crt >>/etc/pki/tls/certs/ca-bundle.crt
https://manuals.gfi.com/en/kerio/connect/content/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html очень хорошая ссылка, в которой объясняется, как добавить его в несколько популярных ОС.
вы можете скачать комплект корневых сертификатов CA из haxx.se кто являются создателями curl. затем просто добавьте свой сертификат в их .pem и обратитесь к нему при использовании curl с параметром --cacert
-v
с https в URL.
$ curl -v https://google.com
* Rebuilt URL to: https://google.com/
* timeout on name lookup is not supported
* Trying 172.217.9.174...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to google.com (172.217.9.174) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* *CAfile: C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt*
Расположение пакета CA по умолчанию зависит от ОС. В RHEL5 он находится в /etc/pki/tls/certs/ca-bundle.pem. В других версиях Linux или операционных систем, отличных от Linux, он может находиться в другом месте.