cURL и self-signed SSL сертификаты

Avatar of admin admin - 12.06.2017 11:39 - Полезные программы, Linux

При обращении по защищенному протоколу к серверу, который использует самоподписанный сертификат, возникает ошибка:
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.


В тексте содержится ссылка на страницу, где содержатся инструкции по устранению такой ситуации, но там на английском языке и много вариантов, не всем понятно, что делать.

Самый простой вариант - запретить проверку сетевого узла. При вызове из командной строки это можно сделать, используя параметр -k (или --insecure).

Но если мы получаем доступ к важной информации, боле правильный вариант - указать файл сертификата. Для получения информации о сертификате вводим команду (где <site.tld> - имя нужного сайта):

openssl s_client -connect <site.tld>:443 |tee logfile


видим какую-то информацию, набираем quit и жмем Enter.

Находим на экране текст, ограниченный маркерами BEGIN CERTIFICATE и END CERTIFICATE:

-----BEGIN CERTIFICATE-----

   непонятные буквы и цифры

-----END CERTIFICATE-----


Копируем фрагмент в файл (вместе с маркерами), например, cert.txt
Даем команду (<file> - имя получаемого файла):

curl --cacert ./cert.txt https://<site.tld>/<file>

ошибок быть не должно. 

Новый комментарий

0 комментариев