Розташування пакета CA Cert за замовчуванням


18

Мені потрібно додати файл .pem cert до мого пакету сертифікатів cert за замовчуванням, але я не знаю, де зберігається пакет за замовчуванням CA Cert.

Мені потрібно додати новий .pem файл до цього пакету за замовчуванням. Я вважаю за краще робити це, ніж вказувати власне місцезнаходження за допомогою --capath

cURL чітко знає, де шукати, але я не бачу жодних команд cURL, які б розкривали розташування. Чи є команда, яка розкриє це місце? Як я можу його знайти?

Відповідно до CURL:
Додайте сертифікат CA для вашого сервера до існуючого пакету сертифікатів cert за замовчуванням. Шлях, який використовується за замовчуванням для використовуваного пакету CA, можна змінити, запустивши налаштування за допомогою параметра --with-ca-bundle, що вказує шлях на ваш вибір.

Спасибі


Яку операційну систему ви використовуєте?
Крістіан Цюпіту

Відповіді:


20

Біг curlз straceможе дати вам поняття.

strace curl https://www.google.com | & grep open

Багато виводу, але я бачу:

відкрити ("/ etc / ssl / certs / 578d5c04.0", O_RDONLY) = 4

де зберігаються мої сертифікати.


2
+1 за показ мені strace!
Роберт Дандон

straceнедоступно на macOS, мабуть. "Еквівалент" dtrussсказав мені "dtrace: не вдалося ініціалізувати dtrace: DTrace вимагає додаткових привілеїв". Тож я sudoз цим користувався. На що він відповів "dtrace: не вдалося виконати curl: dtrace не може керувати виконуваними файлами, підписаними з обмеженими правами". Не дуже корисно.
LS

17

Повинна бути програма "curl-config" у "bin /" curl, тобто там, де знаходиться бінарний файл "curl".

./curl-config --ca

дає шлях встановлення пакета ca.

Я тільки що зробив Whatis curl-config: "Отримайте інформацію про встановлення libcurl", тож я думаю, вона буде доступна лише в тому випадку, якщо буде встановлено libcurl, який, напевно, вважаю стандартним.


1
Мені довелося встановити пакет на Ubuntu, щоб запустити це (вам буде показаний перелік доступних опцій, якщо він не встановлений), але за допомогою цієї команди привело мене в потрібне місце!
Роберт Дандон

2
curl-configПрограма не доступна у всіх версіях програми або установки. Наприклад, деякі адміністратори можуть не розуміти мету програми і не встановлювати її, оскільки вони думають, що це лише інструмент конфігурації побудови. Далі, якщо користувач, якому потрібна програма, не є адміністратором системи, він не може її встановити. У мене є доступ до двох систем, один не має такої програми, інший не дає ніякого висновку для curl-config --ca.
LS

Я вважаю за краще, щоб ця відповідь була прийнятою - використання straceзначень конфігурації не повинно бути необхідним.
Кен Вільямс

7

Я знайшов простий спосіб: використовувати --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

Я думав, це виглядає як хороше рішення. Однак curl дав мені помилку "77", але не додаткову інформацію.
LS

@LS спробуйте додати багатослівний прапор: -v або --verbose
Chananel P

2

Linux (Ubuntu, Debian)

Скопіюйте свій CA в dir / usr / local / share / ca-сертифікати /

sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt

Оновіть магазин CA

sudo update-ca-certificates

Видаліть свій ЦА та оновіть магазин магазину:

sudo update-ca-certificates --fresh

Linux (CentOs 6)

Встановіть пакет сертифікатів 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

Linux (CentOs 5)

Додайте до файлу ваш надійний сертифікат /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-certificate/adding-trusted-root-certificates-to-the-server-1605.html дуже приємне посилання, яке пояснює, як додати його до кількох популярних ОС.


Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Джеральд Шнайдер

@GeraldSchneider> Ви коментарі читали, і діяли;)
BiG_NoBoDy

1

ви можете завантажити пакет кореневих сертифікатів CA з haxx.se, які є творцями curl. тоді просто додайте свій сертифікат у свою .pem та зверніться до нього під час використання curl з опцією --cacert


1

-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*

Ні. Це нічого не показало для мене. Насправді я порівнював вихід цього з іншим запуском, додаючи -kопцію, щоб побачити, чи є різниця. Різниці не було.
LS

@LS Чи є у вас URL-адреса?
Філіп Рего

0

Місце розташування пакету CA за замовчуванням залежить від ОС. На RHEL5 він знаходиться в /etc/pki/tls/certs/ca-bundle.pem. В інших варіантах ОС Linux або нелінукс може бути в іншому місці.


Тому я думаю, що я просто шукаю цей файл тоді ...
Slinky

2
Ще одна ідея: # strings /usr/lib64/libcurl.so.3 | egrep '^ /' /etc/pki/tls/certs/ca-bundle.crt
offby1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.