Question

Je pense que j'ai maintenant une bonne compréhension des raisons pour lesquelles vous devez avoir le pack de certificat SSL lorsque vous tirez du contenu d'une API HTTPS comme Facebook. Mais ma question est: pourquoi cela fonctionne-t-il parfois même sans le certificat et d'autres non? Il me semble que Libcurl a un moyen de surmonter ce problème seul.

Quelqu'un sait pourquoi ou comment cela se produit? Quelqu'un a eu la même expérience?

Était-ce utile?

La solution

Le comportement de Curl en ce qui concerne les certificats SSL dépend de l'option Curlopt_SSL_VERIFYPEER. En supposant que vous utilisez PHP, vous pouvez utiliser la fonction curl_setopt pour modifier la valeur de cette option.

Je n'ai que une connaissance superficielle de SSL, mais il semble que Curl se comporte de la manière suivante: 0 signifie aucune vérification, 1 vérifie si le certificat est légitime, et 2 chèques vérifie également si le certificat est délivré au nom d'hôte correct.

Vous pouvez `` désactiver les erreurs ennuyeuses '' en définissant Curlopt_ssl_verifypeer sur 0, mais cela signifie que vous ne pouvez pas être sûr que vous aurez une connexion au serveur correct, comme n'importe qui peut parcourir le DNS. Cela est donc très dangereux.

Le SDK officiel Facebook PHP fournit son propre certificat en utilisant Curlopt_cainfo, mais seulement lorsque Curl n'a pas pu valider le certificat par lui-même. Je ne sais pas pourquoi les développeurs du SDK Facebook rendraient ce conditionnel; Peut-être parce que les certificats de lecture peuvent être chers.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top