Eu também encontrei esse problema. Eu li este tópico e a maioria das respostas é informativa, mas excessivamente complexa para mim. Como não tenho experiência em tópicos de rede, esta resposta é para pessoas como eu.
No meu caso, esse erro estava ocorrendo porque não incluí os certificados intermediário e raiz ao lado do certificado que estava usando no meu aplicativo.
Aqui está o que eu recebi do fornecedor de certificado SSL:
- abc.crt
- abc.pem
- abc-bunde.crt
No abc.crt
arquivo, havia apenas um certificado:
-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----
Se eu o fornecesse neste formato, o navegador não mostraria nenhum erro (Firefox), mas eu receberia um curl: (60) SSL certificate : unable to get local issuer certificate
erro ao fazer a solicitação de ondulação.
Para corrigir esse erro, verifique seu abc-bunde.crt
arquivo. Você provavelmente verá algo assim:
-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----
Estes são seus certificados intermediários e raiz. Ocorreu um erro porque eles estão ausentes no certificado SSL que você está fornecendo ao seu aplicativo.
Para corrigir o erro, combine o conteúdo de ambos os arquivos neste formato:
-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----
Observe que não há espaços entre os certificados, no final ou no início do arquivo. Depois de fornecer esse certificado combinado ao seu aplicativo, seu problema deve ser corrigido.