Pergunta

Eu acho que agora tenho uma boa compreensão de por que você precisa ter o pacote de certificado SSL ao puxar conteúdo de uma API HTTPS como o Facebook.Mas minha pergunta é: por que isso trabalha às vezes, mesmo sem o certificado e alguns outros não? Parece-me que Libcurl tem uma maneira de superar esse problema por conta própria.

Alguém sabe por que ou como isso acontece?Alguém teve a mesma experiência?

Foi útil?

Solução

O comportamento do curl com relação aos certificados SSL depende da opção Curlopt_SSL_VERIFypeer. Supondo que você use PHP, você pode usar a função curl_setopt"> curl_setopt Para alterar o valor dessa opção.

Eu tenho apenas conhecimento superficial do SSL, mas parece que a curl se comporta da seguinte maneira: 0 significa sem verificação, 1 verifica se o certificado é legítimo, e 2 verificações também verifica se o certificado é emitido para o nome do host correto.

Desligar erros irritantes 'definindo Curlopt_SSL_VERIFypeer para 0, mas isso significa que você não pode ter certeza de que você terá uma conexão com o servidor correto, pois qualquer um poderá Spoof o DNS . Então, isso é muito perigoso.

O oficial Facebook PHP SDK fornece seu próprio certificado usando Curlopt_Cainfo , mas somente quando a Curl não pôde validar o certificado por conta própria. Eu não sei porque os desenvolvedores do SDK do Facebook tornariam este condicional; Talvez porque os certificados de leitura podem ser caros.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top