Diagnostiquez et corrigez les problemes SSL dans vos applications PHP.
Les erreurs SSL avec cURL sont parmi les plus frustrantes pour les developpeurs PHP. "SSL certificate problem: unable to get local issuer certificate" est le message classique.
Ces erreurs surviennent souvent apres une migration de serveur, une mise a jour PHP, ou lors de l'integration d'APIs tierces.
Ce guide couvre les causes et solutions pour les erreurs SSL cURL les plus courantes.
Les messages d'erreur SSL cURL typiques :
Pourquoi ces erreurs surviennent :
Comment resoudre ces erreurs :
Corrections pour les erreurs SSL cURL :
<?php
// Solution 1: Specifier le bundle CA dans le code
$ch = curl_init("https://api.example.com");
curl_setopt($ch, CURLOPT_CAINFO, "/path/to/cacert.pem");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
// Solution 2: Configurer dans php.ini
// curl.cainfo = "/path/to/cacert.pem"
// openssl.cafile = "/path/to/cacert.pem"
// MAUVAISE PRATIQUE - NE PAS FAIRE EN PRODUCTION
// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// Debug
curl_setopt($ch, CURLOPT_VERBOSE, true);
$verbose = fopen("php://temp", "w+");
curl_setopt($ch, CURLOPT_STDERR, $verbose);
Telecharger cacert.pem: https://curl.se/docs/caextract.html
Evitez les pieges courants :
Uniquement en developpement. JAMAIS en production, cela expose aux attaques MITM.
curl.se/docs/caextract.html - c'est le bundle officiel de Mozilla.
Possible. Testez avec SSL Labs s'il s'agit d'un serveur tiers.
Mise a jour PHP, changement de serveur, ou expiration de certificat distant.
Oui, Guzzle utilise cURL. Meme solution : configurer le bundle CA.
Creez un cron qui telecharge cacert.pem periodiquement depuis curl.se.
Les erreurs SSL cURL sont resolues en configurant correctement le bundle de certificats CA. Ne jamais desactiver la verification.
Surveillez vos propres certificats avec MoniTao pour eviter d'etre la source du probleme pour vos clients.
Commencez gratuitement, sans carte bancaire.