Tout d'abord, vous mélangez un peu les fichiers "Autorité de certification" et les fichiers "Certificat", ce qui me perturbe.
Comment puis-je ajouter mon propre certificat CA/auto-signé afin que libcurl puisse le valider avec succès?
Cela pourrait être vu comme une réponse complémentaire à celle ci-dessus. Dans le cas où vous souhaitez ajouter un CA auto-signé (chaque CA racine est auto-signé) afin que libcurl puisse valider avec succès le certificat d'un site web, qui a été généré par le CA, alors continuez à lire.
Avec CURLOPT_CAINFO, vous devez passer le fichier "Autorité de certification" (CA) qui a été utilisé lors de la génération du certificat (non-CA) du site que vous souhaitez vérifier.
(Je ne sais pas si cette option fonctionne en lui passant un certificat non-CA, la documentation n'est pas vraiment claire à ce sujet, et la réponse précédente a 2 votes positifs, donc si quelqu'un l'a testée, veuillez commenter)
Vous pouvez également passer un fichier de chaîne d'Autorité de certification qui contient le CA qui a été utilisé, au cas où ce ne serait pas un CA racine.
Voici un petit tutoriel que j'ai trouvé qui peut vous aider à tester votre solution:
Création d'un CA racine privé: http://www.flatmtn.com/article/setting-openssl-create-certificates
Création d'un certificat de site: http://www.flatmtn.com/article/setting-ssl-certificates-apache