Я пытаюсь использовать httpie с API JIRA REST.
Команда завершается с ошибкой «SSLError: hostname
bash-3.2$ http https://jira.mongodb.org/rest/api/2/search?jql=assignee=bob
http: error: SSLError: hostname 'jira.mongodb.org' doesn't match either of '*.mongodb.com', 'mongodb.com'
Насколько я понимаю, requests
обычно должен выдавать эту ошибку, если сертификат SSL недействителен. Сообщение, похоже, подразумевает, что сертификат предназначен для *.mongodb.com, под который jira.mongodb.org не подпадает.
Однако та же команда отлично работает через CuRL без предупреждений SSL:
bash-3.2$ curl -v https://jira.mongodb.org/rest/api/2/search?jql=assignee=free
* Adding handle: conn: 0x7fbe2b003a00
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7fbe2b003a00) send_pipe: 1, recv_pipe: 0
* About to connect() to jira.mongodb.org port 443 (#0)
* Trying 54.221.213.229...
* Connected to jira.mongodb.org (54.221.213.229) port 443 (#0)
* TLS 1.1 connection using TLS_RSA_WITH_AES_256_CBC_SHA
* Server certificate: jira.mongodb.org
* Server certificate: Go Daddy Secure Certification Authority
* Server certificate: Go Daddy Class 2 Certification Authority
> GET /rest/api/2/search?jql=assignee=free HTTP/1.1
> User-Agent: curl/7.30.0
> Host: jira.mongodb.org
> Accept: */*
>
< HTTP/1.1 200 OK
* Server Apache-Coyote/1.1 is not blacklisted
< Server: Apache-Coyote/1.1
< Vary: Accept-Encoding
< Cache-Control: no-cache, no-store, no-transform
< Content-Type: application/json;charset=UTF-8
< Date: Fri, 26 Sep 2014 02:14:22 GMT
< X-AREQUESTID: 134x54195573x2
< Transfer-Encoding: chunked
< X-AUSERNAME: anonymous
< Set-Cookie: atlassian.xsrf.token=ASGJ-NC06-6R0X-EKH7|4d65065ad638afb4fe7edb9b04e81379cc315e06|lout; Path=/
<
* Connection #0 to host jira.mongodb.org left intact
{"startAt":0,"maxResults":50,"total":0,"issues":[]}
Кроме того, он также отлично загружается в моем браузере (Chrome), и никаких предупреждений SSL не выдается.
Любые мысли о том, что может происходить, пожалуйста?
Это связано с SNI. Вам нужно установить дополнительные зависимости, которые вы получите, если сделаете «запросы на установку pip [безопасность]».
Отправлено с моего устройства Android с помощью K-9 Mail. Пожалуйста, простите меня за краткость.
У меня та же проблема, но единственный способ заставить запрос работать — установить для проверки значение False. Я попытался обновить запросы и установить запросы [безопасность] и даже настроить проверку в файле сертификата.
У меня тоже была эта проблема. Мне нужно было обновить requests[security]
и httpie
:
pip install --upgrade requests[security]
pip install --upgrade httpie
Эти ошибки должны исчезнуть в более новых версиях HTTPie, основанных на Python 3.6+.
Самый полезный комментарий
Это связано с SNI. Вам нужно установить дополнительные зависимости, которые вы получите, если сделаете «запросы на установку pip [безопасность]».
Отправлено с моего устройства Android с помощью K-9 Mail. Пожалуйста, простите меня за краткость.