Curl não consegue recuperar o conteúdo HTTPS

2

Eu tenho um problema no meu servidor de produção rodando no Debian 6 (apt-get update; upgrade do apt-get feito com sucesso).

Quando eu chamo um servidor HTTPS (StartSSL) recebi uma mensagem de erro no Debian 6:

#> curl --version
curl 7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6
Protocols: dict file ftp ftps http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

#> curl https://mydomain.com/api/
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

Mas quando eu chamo o mesmo endereço no Debian 7 (o servidor também está atualizado), tudo está funcionando bem:

#> curl --version
curl 7.26.0 (x86_64-pc-linux-gnu) libcurl/7.26.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.25 libssh2/1.4.2 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp
Features: Debug GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

#> curl https://mydomain.com/api/
{'code':'ko', 'message':'ERR_AUTH_BASIC_NEEDED'}

Você tem alguma idéia do porque o HTTPS falha no Curl Debian 6 e funciona com o Debian 7 curl?

    
por 0xBAADF00D 23.08.2013 / 09:37

1 resposta

5

Não há enrolar que esteja desatualizado, mas o pacote de certificados de CA raiz que o sistema usa. Os certificados válidos podem mudar ao longo do tempo conforme as CAs são iniciadas, saem do mercado ou seus certificados expiram ou são revogados ou renovados.

No debian, estes estão em o pacote ca-certificates . Para squeeze, isso não parece ter sido atualizado em vários anos. Apenas wheezy e mais recente parecem estar em qualquer lugar perto da atual. As distribuições devem atualizá-las durante toda a vida de suporte da distribuição, mas o Debian não parece estar fazendo isso.

Você deve ser capaz de fazer o backport usando o pacote de fontes (não tente usar os pacotes binários; suas dependências também serão atualizadas, e a quebra ocorrerá).

    
por 23.08.2013 / 09:41