Как добавить доверенный центр сертификации в Linux, чтобы curl не ругался?

У яндекса в одном API написано буквально следующее:

Необходимо загрузить цепочку сертификации (сертификаты удостоверяющих центров NBCO YM Root и NBCO YM Int) по адресу crls.yamoney.ru/ymca.p7b и добавить их в списки доверенных корневых и промежуточных центров сертификации своего ПО.


Что конкретно я должен сделать с этим файлов ymca.p7b на своём Linux, чтобы CURL не ругался?

На данный момент я пробовал указывать файл в качестве опции curl

curl --verbose \
 --cert "yandex-generated-cer.cer" \
 --key "my-private.key" \
 --cacert "ymca.p7b" \
 --pass "my-pryvate-key-pws" \
 https://penelope-demo.yamoney.ru:8083/webservice/mws/api/listOrders


Ошибка: curl: (77) error setting certificate verify locations

Я подозреваю, что неверно использую файл ymca.p7b.
  • Вопрос задан
  • 4094 просмотра
Решения вопроса 1
@wearemieta
BEWARE HIPSTERS
В ymca.p7b лежит цепочка сертификации. Это значит, что сертификатов там несколько и нужно их склеить:

openssl pkcs7 -inform DER -outform PEM -in ymca.p7b -print_certs > ymca.crt

www.openssl.org/docs/apps/pkcs7.html

Ну а теперь, надо их установить в систему:

sudo mkdir /usr/share/ca-certificates/extra
sudo cp ymca.crt /usr/share/ca-certificates/extra/ymca.crt
sudo dpkg-reconfigure ca-certificates

askubuntu.com/questions/73287/how-do-i-install-a-r...

Собственно, после этого в /etc/ssl/certs/ должен появиться ymca.pem и одно из API Яндекса должно заработать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
c.setopt(pycurl.SSL_VERIFYPEER, 0)
c.setopt(pycurl.SSL_VERIFYHOST, 0)
c.setopt(pycurl.SSLCERT, 'd:/crt.pem')
c.setopt(pycurl.SSLKEY, 'd:/key.pem')
c.setopt(pycurl.SSLCERTPASSWD, 'Somepass')
c.setopt(pycurl.SSLKEYPASSWD, 'Somepass')


разумеется, p7b to pem нужно сделать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы