Erro cURL unable to get local issuer certificate
Olá! Esse erro ocorre em um php simples rodando em um servidor compartilhado Locaweb: SSL certificate problem: unable to get local issuer certificate. O php faz uma requisição ao site do Cep Aberto para consulta de endereço informando o CEP (https://www.cepaberto.com/api/v3/cep?cep=95020520)
Olhei o php.ini e não tem nenhuma menção ao arquivo de certificados. Então peguei alguns tutoriais, baixei o arquivo "cacert.pem", coloquei lá e defini o curl no próprio php, ficou assim:
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Token token="' . $token . '"']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CAINFO, $cacert);
curl_setopt($ch, CURLOPT_CAPATH, $cacert);
$res = curl_exec($ch);
if($res===FALSE) {
$Res["erro"] = "curl";
$Res["msg"] = "Execução CURL falhou!";
$Res["descr"] = curl_error($ch);
} else {
$Res["dados"] = json_decode($res);
$Res["http"] = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$Res["erro"] = ($Res["http"]==200)? "OK" : "http" ;
$Res["msg"] = ($Res["http"]==200)? "" : "Erro HTTP ".$Res["http"] ;
}
Onde $cacert é o endereço do arquivo "cacert.pem", verificado antes por is_file. Mas o erro é o mesmo, como se eu nada tivesse feito. Tem que configura o Apache? Não sei como configurar o Apache, será que posso? Desabilitar o SSL do php é uma opção que não tentei ainda, dizem que não é aconselhável...
O PHP é o 5.6 (pretendo ir pro 7.4 em breve) e o servidor é CENTOS 5.11 compartilhado, hospedagem Locaweb.
Alguma ideia?Discussão (8)
Carregando comentários...