Вопрос: Ubuntu 10.04 / CURL: Как исправить / обновить пакет CA?


Недавно я обновил наш сервер с 8.04 по 10.04 и все программное обеспечение вместе с ним.

Из того, что я нашел в Интернете, кажется, что новая версия CURL не включает пакет CA, и, как следствие, не удается проверить, что сертификат подключаемого вами сервера подписан действующим органом ,

Фактическая ошибка:

Ошибка CURL: проблема с сертификатом SSL, убедитесь, что сертификат CA в порядке.
Подробности: ошибка: 14090086: SSL-процедуры: SSL3_GET_SERVER_CERTIFICATE:
проверка сертификата не выполнена

Некоторые обнаруженные palms предлагают вручную указать файл CA или вообще отключить проверку, установив параметр при вызове CURL, но я бы скорее устранил проблему во всем мире, вместо того, чтобы изменять вызовы CURL каждого приложения.

Есть ли способ исправить проблему CA CURL по всему серверу, чтобы весь существующий код приложения работал без изменений?


16
2018-06-14 18:30


Источник




Ответы:


У меня были те же проблемы, и я немного пошутил, что вы можете скачать пакет CA-certs, готовый к завивке на ubuntu непосредственно с сайта curl dev.

cd /etc/ssl/certs
sudo wget http://curl.haxx.se/ca/cacert.pem

Теперь curl использует самый современный пакет, и вам хорошо идти.


16
2017-07-24 04:03



после этого мне пришлось обновить: update-ca-certificates -f - Grain


Имела аналогичную проблему с Ubuntu 12.04 запускать завиток из командной строки, чтобы получить команды командной строки aws, которые были в github. Я обнаружил, что если я запускаю командную строку как таковую:

curl https://raw.github.com/timkay/aws/master/aws -o aws --cacert /etc/ssl/certs/ca-certificates.crt

это сработает. Но пытаясь установить переменную окружения CURL_CA_BUNDLE, чтобы я мог избежать аргумента «cacert», это не сработало. В конечном итоге обновление ca-сертификатов, похоже, решило проблему:

sudo update-ca-certificates

В качестве одной из примечаний, в какой-то момент я обновил ca-certs от curl.haxx.se, который не разрешил проблему, но, возможно, был связан. (sudo wget http://curl.haxx.se/ca/cacert.pem бежать от /etc/ssl/certs).


9
2018-06-28 03:36



Ссылка 404'd для меня. Это работает: curl.haxx.se/ca/cacert.pem - dave1010
Хм. Кажется хитроумным, чтобы получить файл, содержащий такие сертификаты не над HTTPS. - Matthew Schinckel


Как правило, программное обеспечение, которое не имеет уникальной реализации и составлено для OpenSSL, будет ссылаться на общесистемный ca-bundle.crt, который часто находится в /usr/share/ssl/certs,

В Ubuntu местоположение может отличаться, но пакет OpenSSL должен содержать файл ca-bundle.

CURL имеет множество опций, чтобы указать, как он проверяет сертификаты.

  • CURL_CA_BUNDLE переменная среды для расположения файла ca-bundle.
  • --capath позволяет указать каталог, в котором находятся сертификаты CA. (Overrides CURL_CA_BUNDLE)
  • --cacert позволяет указать файл сертификата ЦС.

На моем сервере CentOS я могу запустить следующее, чтобы определить путь ca-bundle, который использует CURL:

$ curl-config --ca
/usr/share/ssl/certs/ca-bundle.crt

5
2018-06-14 18:50



Установлен открытый SSL. У меня есть файл ca-certificate.crt в файле / etc / ssl / certs /, который похож на совокупность сертификатов, соединенных вместе, но я думаю, что CURL не видит его? У CURL есть настройка конфигурации для CA-Bundle? - Nick
Вы уверены, что это не тот тип сертификата, который он пытается проверить? Более новые технологии сертификатов, такие как сертификаты расширенной проверки, часто требуют обновлений пакетного пакета, поскольку корневые сертификаты являются относительно новыми. Ознакомьтесь также с моим предстоящим редактированием. - Warner
curl-config, похоже, не является допустимой командой Ubuntu. Как установить CURL_CA_BUNDLE? - Nick
Похоже, что это часть libcurl3-openssl-dev пакет на основе быстрого поиска в Интернете. CURL_CA_BUNDLE это просто переменная среды. В bash, CURL_CA_BUNDLE=/path/to/file, - Warner
Хорошо, пакет установлен, но «curl-config --ca» создает пустую строку. Я попытался установить переменную, используя 'CURL_CA_BUNDLE = "/ etc / ssl / certs / ca-certificates.crt". Но «curl-config -ca» по-прежнему создает пустую строку. - Nick