Я работаю на Ubuntu 16.04.4 LTS . У меня есть следующие версии:

root@e816b85d954d:/# http --debug
HTTPie 0.9.9
Requests 2.9.1
Pygments 2.1
Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609]
/usr/bin/python
Linux 4.4.0-116-generic

root@e816b85d954d:/# curl --version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

curl работает нормально:

$ curl https://mysite

Но httpie не работает:

root@e816b85d954d:/# http https://mysite

http: error: SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) while doing GET request to URL: https://mysite

Почему это может быть так?

1 ответ1

0

Сообщение об ошибке довольно простое. Он говорит вам, что веб-сервер содержит сертификат SSL, который имеет некоторые проблемы (скорее всего, потому что он самоподписан, срок его действия истек и т.д.).

Вы должны прекратить проверять действительность сертификата с опцией --verify :

--ПРОВЕРЬТЕ ПРОВЕРИТЬ

Установите "да" для проверки SSL-сертификата хоста. Вы также можете передать путь к файлу CA_BUNDLE для частных сертификатов. Вы также можете установить переменную среды REQUESTS_CA_BUNDLE.

Итак, установки --verify no будет достаточно.

# http --verify no https://...
/usr/lib/python2.7/dist-packages/urllib3/connectionpool.py:794: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
[...]

Тем не менее, всегда лучше использовать действительный сертификат SSL.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .