Я использую Ubuntu 14.04. Когда я использую завихрение, я получаю следующую ошибку:
curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath:
Из того, что я собираюсь из поиска с помощью Google, местоположение CAfile, которое он ищет, не корректно для Ubuntu (и он не существует на моем компьютере), /etc/ssl/certs/ca-certificates.crt
надлежащее местоположение.
Большинство решений, включенных, устанавливая переменную среды CURL_CA_BUNDLE
к надлежащему местоположению или добавлению cacert=/etc/ssl/certs/ca-certificates.crt
к (недавно созданный) .curlrc
файл в моем корневом каталоге. Я попробовал обоих, и ни один полностью не решает проблему. завихрение находит это местоположение, но оно все еще не работает, давая ошибку:
curl: (60) SSL certificate problem: self signed certificate in certificate chain
Я также пытался удалить и переустановить завихрение в Ubuntu и обновить мои сертификаты CA с $ sudo update-ca-certificates --fresh
который обновил сертификаты, но все еще не совершал ошибку 60, уходят.
Я не настолько хорошо осведомлен о сертификатах CA и сомнении, я намеренно добавил некоторых сам подписанный сертификат в прошлом. Возможно, случайно я не знаю.
Кто-либо знает, как зафиксировать это? Существует ли способ на самом деле запуститься новый со всех моих сертификатов? Или кто-либо даже знает, как я иду о выяснении, где это сам сертификат со знаком, и затем как удалить его?
PS: Я не хочу использовать-k (иначе - небезопасный) флаг. Я хочу получить эту работу надежно.
После исследования и работы над этим за прошлые дни пары я заставил его работать, и ответ закончил тем, что был довольно прост.
я должен был установить capath=/etc/ssl/certs/
в моем .curlrc
файл.
Этот получил завихрение, работающее над командной строкой. Чтобы далее заставить завихрение работать в R (где я сначала встретился с проблемой), я также должен был иметь cacert=/etc/ssl/certs/ca-certificates.crt
в моем .curlrc
файл, как попробовано прежде, иначе это продолжало искать /etc/pki/tls/certs/ca-bundle.crt
, я все еще понятия не имею, почему я видел ошибку о самоподписанных сертификатах.
На основе некоторых других случайных результатов я также загрузил сертификат с Вихревого веб-сайта с:
sudo wget http://curl.haxx.se/ca/cacert.pem
в тот же certs
каталог. При указывании cafile
это работало также. В конце я отложил его к ca-certificates.crt
, и это все еще работает.
я не понимаю точно, почему это работало или что продолжается, но это разрешено.
ключ cafile не работает на меня (завихрение 7.45.0), но cacert (от - cacert опция) делает. Мой файл .curlrc :
capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt
После исследования для несколько раз я заставил это работать, и ответ закончил тем, что был скорее простым. Сделайте пошагово
Step:1 Open terminal ctrl+alt+t
Step:2 cd /etc/ssl/certs/
Step:3 sudo wget http://curl.haxx.se/ca/cacert.pem
, Шаг 3 загрузит pem файл в эти сертификаты папка
Step 4: Check if .curlrc file is available in your home folder or not.
, .curlrc является скрытым файлом. проверьте ctrl+h в корневом каталоге. если не там затем на терминальном типе
Step 5: nano ~/.curlrc
Step 6: Now paste the below lines in the open file
capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt
Step 7: Now save the file and do your things using curl command.
N.B Здесь я использовал нано редактора, но можно использовать любого редактора.
Мы столкнулись с той же проблемой с одной из наших программ C++ в Ubuntu 14.04.5. .curlrc метод не вступал в силу.
Это было решено путем загрузки ca-certificates.crt на/etc/ssl/certs/ca-certificates.crt и создания ca-bundle.crt символьной ссылки в соответствии с/etc/pki/tls/certs/каталогом.
Надеюсь, это поможет!