Por algum motivo, não consigo usar CURL com HTTPS. Tudo estava funcionando bem até que fiz a atualização das bibliotecas curl. Agora estou tendo esta resposta ao tentar realizar solicitações CURL: Problema com o certificado SSL CA (caminho? Direitos de acesso?)
Seguindo as sugestões postadas aqui sobre questões relacionadas, tentei fazer o seguinte:
Desativar verificação para host e par
curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
Habilite
CURLOPT_SSL_VERIFYPEER
e aponte para cacert.pem baixado de http://curl.haxx.se/docs/caextract.htmlcurl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle");
Eu também tentei fazer a mesma coisa com o PositiveSSL.ca-bundle que foi fornecido como um certificado CA do pacote para o servidor ao qual estou tentando me conectar.
Edite as configurações do php ini com
curl.cainfo=cacert.pem
(arquivo no mesmo diretório e acessível pelo apache)Renomear
/etc/pki/nssdb
para/etc/pki/nssdb.old
Infelizmente, nenhuma das opções acima é capaz de resolver meu problema e eu sempre recebo a mensagem Problema com a mensagem SSL CA cert (caminho? Direitos de acesso?).
E eu não preciso dessa verificação em primeiro lugar (estou ciente dos problemas de segurança).
Alguém tem alguma outra sugestão?
ATUALIZAR
Depois de atualizar para as bibliotecas mais recentes e reiniciar de toda a caixa, não apenas o apache que eu estava fazendo parece estar funcionando de novo !!!
Respostas:
De acordo com a documentação: para verificar o certificado do host ou do mesmo nível, você precisa especificar certificados alternativos com a
CURLOPT_CAINFO
opção ou um diretório de certificado pode ser especificado com aCURLOPT_CAPATH
opção.Veja também
CURLOPT_SSL_VERIFYHOST:
fonte
SSL verification disabled
)Tivemos o mesmo problema em uma máquina CentOS7. Desativar o
VERIFYHOST
VERIFYPEER
não resolveu o problema, não tínhamos mais o erro cURL, mas a resposta ainda era inválida. Fazer umwget
para o mesmo link que o cURL estava fazendo também resultou em um erro de certificado.-> Nossa solução também foi reiniciar o VPS, isso resolveu e pudemos concluir a solicitação novamente.
Para nós, isso parecia ser um problema de corrupção de memória. Reinicializar o VPS recarregou a biblioteca na memória novamente e agora funciona. Portanto, se a solução acima
@clover
não funcionar, tente reinicializar sua máquina.fonte