Security

PHP Curl SSL Zertifikat Problem

Viele PHP Entwickler kennen die SSL Problematik mit CURL: certificate verify failed. Als Lösung sehen viele den dirty Fix: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); Das löst das Problem zwar, verursacht aber eine Sicherheitslücke die Man-In-The-Middle (MitM) Attacken ermöglicht. Die saubere Lösung hierfür ist: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // Überprüft ob der "Common name" existiert und mit dem Hostnamen des Servers übereinstimmt. curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/CA.crt"); // Hier entsprechend das CA Cert.