Ubuntu 10.04 / CURL: Como faço para corrigir / atualizar o pacote do CA?

16

Recentemente, atualizei nosso servidor de 8.04 para 10.04 e todo o software junto com ele.

Pelo que encontrei on-line, parece que a nova versão do CURL não inclui um pacote da CA e, como resultado, não verifica se o certificado do servidor ao qual você está se conectando está assinado por uma autoridade válida.

O erro real é:

CURL error: SSL certificate problem, verify that the CA cert is OK.
Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:
certificate verify failed 

Alguns resultados encontrados sugerem a especificação manual de um arquivo de autoridade de certificação ou a desabilitação completa definindo uma opção quando você chama CURL, mas prefiro corrigir o problema globalmente, em vez de precisar modificar as chamadas CURL de cada aplicativo.

Existe uma maneira de corrigir o problema do servidor CA do CURL para que todo o código do aplicativo existente funcione como está sem precisar ser modificado?

    
por Nick 14.06.2010 / 20:30

3 respostas

16

Eu tenho tido o mesmo problema e depois de bisbilhotar um pouco descobri que você pode baixar um pacote de CA-certs pronto para enrolar no ubuntu diretamente do site curl dev.

cd /etc/ssl/certs
sudo wget http://curl.haxx.se/ca/cacert.pem

Agora o curl usa o pacote mais atualizado e você está pronto para usar.

    
por 24.07.2011 / 06:03
9

Tive um problema semelhante com o Ubuntu 12.04 executando curl a partir da linha de comando para obter as ferramentas de linha de comando aws que estavam no github. Eu encontrei se eu corri a linha de comando como tal:

curl https://raw.github.com/timkay/aws/master/aws -o aws --cacert /etc/ssl/certs/ca-certificates.crt

funcionaria. Mas tentar definir a variável de ambiente CURL_CA_BUNDLE para que eu pudesse evitar o argumento "cacert" não funcionaria. Por fim, a atualização dos certificados do CA pareceu resolver o problema:

sudo update-ca-certificates

Como uma nota lateral, em um ponto eu atualizei ca-certs de curl.haxx.se que não resolveu o problema mas pode ter sido relacionado. ( sudo wget http://curl.haxx.se/ca/cacert.pem executado a partir de /etc/ssl/certs ).

    
por 28.06.2012 / 05:36
5

Normalmente, o software que não possui uma implementação exclusiva e é compilado com relação ao OpenSSL fará referência ao ca-bundle.crt em todo o sistema, geralmente localizado em /usr/share/ssl/certs .

A localização pode ser diferente no Ubuntu, mas o pacote OpenSSL deve incluir o arquivo ca-bundle.

O CURL tem uma variedade de opções para especificar como ele verifica os certificados.

  • A variável de ambiente CURL_CA_BUNDLE para o local do arquivo do pacote-CA.
  • --capath permite especificar o diretório onde os certificados da AC estão localizados. (Substitui CURL_CA_BUNDLE )
  • --cacert permite que você especifique o arquivo de certificado de CA.

No meu servidor CentOS, posso executar o seguinte para identificar o caminho do pacote-CA que o CURL usa:

$ curl-config --ca
/usr/share/ssl/certs/ca-bundle.crt
    
por 14.06.2010 / 20:50

Tags