Quando tento usar o Curl no Windows, para recuperar um https
URL, recebo o temido "erro de conexão (60)".
A mensagem de erro exata é:
curl: (60) problema com o certificado SSL, verifique se o certificado da CA está OK. Detalhes:
erro: 14090086: rotinas SSL: SSL3_GET_SERVER_CERTIFICATE: falha na verificação do certificado
Mais detalhes aqui: http://curl.haxx.se/docs/sslcerts.html
Como resolver isso?
Respostas:
Não sei por que, mas não encontrei essas informações em um só lugar.
Faça o download da versão compatível com SSL do Curl ou crie você mesmo a versão compatível com SSL.
Em http://curl.haxx.se/docs/caextract.html , faça o download do arquivo cacert.pem.
Coloque o curl.exe e o arquivo .pem no mesmo diretório.
Renomeie o
cacert.pem
arquivo paracurl-ca-bundle.crt
Execute novamente o curl.exe!
EDITAR:
Existem outras maneiras de resolver o problema. dessa maneira particular, depende de uma cacert produzida pelo fabricante da Curl. Pode não ser o que você deseja e, em particular, pode não funcionar nos casos em que você possui uma autoridade de certificação pouco conhecida (como uma autoridade conhecida apenas por sua empresa) para o certificado usado pelo site SSL . Nesse caso, você desejará gerar seu próprio
curl-ca-bundle.crt
arquivo. Você pode usar o certreq.exe e o openssl.exe para exportar esse certificado da loja IE / Windows e depois converter para o formato pem, respectivamente.fonte
curl
marcadoWinSSL
no Windows 7. De acordo com o link da documentação, as versões marcadas devem funcionar apenas com os certificados do sistema. No entanto, eu estava recebendo o erro até seguir sua solução.set CURL_CA_BUNDLE=<path to crt>
. Certifique-se de que o formato do arquivo seja adequado. Este método irá funcionar mesmo se você tiver váriascurl
instalações, por exemplo, Git, vagabundo ...Criei um script do PowerShell capaz de gravar o
ca-cert.crt
arquivo com base nos certificados de CA instalados no seu repositório de certificação do Windows (CurrentUser ou LocalMachine). Execute o script assim:Isso criará o
curl-ca-cert.crt
arquivo que deve ser armazenado no mesmo diretóriocurl.exe
e você poderá validar os mesmos sites dos aplicativos do Windows (observe que esse arquivo também pode ser consumidogit
).O script "oficial" pode ser encontrado no GitHub , mas a versão inicial está listada aqui para referência:
fonte
Na verdade, tivemos o mesmo problema com o Typheous / Ruby. A solução estava baixando o cacert.pem e salve-o em C: \ Windows \ System32 (ou onde quer que esteja o Windows). Depois disso, definimos uma variável de ambiente global como descrita aqui, onde o "Nome da variável" deve estar
CURL_CA_BUNDLE
e o "Valor da variável" o caminho para o arquivo%SystemRoot%\System32\cacert.pem
.Ao iniciar uma nova sessão do CMD, agora você pode apenas usar a opção Typheous / Libcurl para autenticar conexões SSL. Eu tentei isso com sucesso com o Windows 8.1.
fonte