Estou tentando usar httpie com a API REST do JIRA.
O comando falha com um "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'
Meu entendimento é que requests
normalmente deve gerar esse erro se o certificado SSL não for válido. A mensagem parece implicar que o certificado é para *.mongodb.com, no qual jira.mongodb.org não se enquadraria.
No entanto, o mesmo comando funciona bem via CuRL, sem avisos de 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":[]}
Além disso, ele também carrega bem no meu navegador (Chrome) e nenhum aviso SSL é dado.
Alguma opinião sobre o que pode estar acontecendo, por favor?
Isso tem a ver com o SNI. Você precisa instalar dependências extras que você obterá se fizer 'pip install requests[security]'
Enviado do meu dispositivo Android com K-9 Mail. Por favor desculpe minha brevidade.
Tendo o mesmo problema, mas a única maneira de fazer uma solicitação funcionar é se eu definir verificar como False. Eu tentei atualizar solicitações e instalar solicitações [segurança] e até mesmo configurar a verificação para o arquivo cert.
Eu estava tendo esse problema também. Eu precisava atualizar requests[security]
e httpie
:
pip install --upgrade requests[security]
pip install --upgrade httpie
Esses erros devem desaparecer nas versões HTTPie mais recentes que dependem do Python 3.6+.
Comentários muito úteis
Isso tem a ver com o SNI. Você precisa instalar dependências extras que você obterá se fizer 'pip install requests[security]'
Enviado do meu dispositivo Android com K-9 Mail. Por favor desculpe minha brevidade.