Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann der Fehler „Problem mit dem SSL-CA-Zertifikat' in PHP CURL behoben werden, obwohl die Überprüfung deaktiviert ist?

Wie kann der Fehler „Problem mit dem SSL-CA-Zertifikat' in PHP CURL behoben werden, obwohl die Überprüfung deaktiviert ist?

DDD
DDDOriginal
2024-10-20 07:20:021050Durchsuche

How to Resolve

Fehlerbehebung ignoriertes CURLOPT_SSL_VERIFYPEER in PHP CURL

Problem:

Benutzer stoßen auf ein Problem, bei dem HTTPS-Anfragen, die CURL verwenden, lösen den Fehler „Problem mit dem SSL-CA-Zertifikat“ aus, obwohl sowohl CURLOPT_SSL_VERIFYPEER als auch CURLOPT_SSL_VERIFYHOST auf „false“ gesetzt sind.

Ursachen und Lösungen:

Zur erfolgreichen Überprüfung Host- oder Peer-Zertifikate mit CURL verwenden, müssen Sie alternative Zertifikate mit CURLOPT_CAINFO oder ein Zertifikatverzeichnis mit CURLOPT_CAPATH angeben.

Zusätzlich:

  • CURLOPT_SSL_VERIFYHOST:

    • Auf 1 setzen, um das Vorhandensein eines gemeinsamen Namens im SSL-Peer-Zertifikat zu überprüfen.
    • Auf 2 setzen, um das Vorhandensein eines gemeinsamen Namens zu überprüfen und ihn mit dem angegebenen Hostnamen abzugleichen.

Vorgeschlagener Code:

So deaktivieren Sie die Überprüfung für Host und Peer:

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

Um die Überprüfung zu aktivieren und ein CA-Zertifikat anzugeben Datei:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_CAINFO, "/path/to/cacert.pem");

Zusätzliche Hinweise:

  • Stellen Sie sicher, dass die CA-Zertifikatdatei gültig und für den Server zugänglich ist.
  • Die Die Einstellung „curl.cainfo“ in php.ini kann auch verwendet werden, um die CA-Zertifikatdatei anzugeben.
  • Benennen Sie /etc/pki/nssdb in /etc/pki/nssdb.old um, um die Zertifizierungsstellen zurückzusetzen.

Update:

Nach der Aktualisierung der Bibliotheken und dem Neustart des Systems kann sich das Problem von selbst beheben.

Das obige ist der detaillierte Inhalt vonWie kann der Fehler „Problem mit dem SSL-CA-Zertifikat' in PHP CURL behoben werden, obwohl die Überprüfung deaktiviert ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn