web-dev-qa-db-de.com

Fehler in Curl - Peer-Zertifikat kann nicht mit bekannten CA-Zertifikaten authentifiziert werden

Beim Herstellen einer SSL-Verbindung mit einem selbstsignierten Zertifikat wird die folgende Fehlermeldung angezeigt. "Peer-Zertifikat kann nicht mit bekannten CA-Zertifikaten authentifiziert werden."

Es funktioniert gut mit einem von CA signierten Zertifikat. Ich setze das Folgende mit curl_easy_setopt ().

curl_easy_setopt (MyContext, CURLOPT_CAPATH, CA_CERTIFICATE_PATH) curl_easy_setopt (MyContext, CURLOPT_SSL_VERIFYPEER, TRUE);

Die Curl-Version
libcurl-7.19.7-26

Openssl-Version ist 0_9_8u.

Bitte lassen Sie mich wissen, wie ich dieses Problem lösen kann.

8
user1345697

für php die curl-Überprüfung des Zertifikats ausschalten, z. für curl_exec

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

http://php.net/manual/de/function.curl-setopt.php

(Beurteilen Sie das Sicherheitsrisiko selbst. In meinem Fall lag es auf einem Server eines Partnerunternehmens, und die erforderliche Datei enthielt keine sicheren Informationen. Zufällig lag es auf einem sicheren Server.)

7
zzapper

Standardmäßig überprüft CURL in der Regel, ob das SSL-Zertifikat gültig ist und von einer akzeptierten Zertifizierungsstelle ausgestellt wurde. Um dies zu erreichen, verwendet curl einen Satz von CA-Zertifikaten.

Wenn Sie die Überprüfung des Zertifikats durch curl deaktivieren möchten, verwenden Sie die Option -k (oder --insecure). Hier ist ein Beispiel:

curl --noproxy -k \* -D - https://127.0.0.1:443/some-secure-endpoint
6
Mark Bonano

Wir haben ein ähnliches Problem in CentOS 6 behoben, indem wir curl auf die neueste Version, die in den Standard-Repositorys verfügbar ist, aktualisieren und das neueste ca-certificate-Paket installieren:

yum update curl
yum install ca-certificates
3
Arth

libcurl führt standardmäßig eine Peer-SSL-Zertifikatsüberprüfung durch. Dies geschieht Mithilfe des CA-Zertifikatspakets, das die SSL-Bibliothek verwenden kann, um sicherzustellen, dass das Serverzertifikat Des Peers gültig ist.

Wenn Sie mit HTTPS- oder FTPS-Servern unter Verwendung von Zertifikaten kommunizieren, die Von den im Bundle vorhandenen Zertifizierungsstellen signiert sind, können Sie sicher sein, dass der entfernte Server Wirklich derjenige ist, der er vorgibt.

Bis 7.18.0 bündelte curl eine stark veraltete ca-Bundle-Datei, die standardmäßig Installiert war. Heutzutage enthalten die Curl-Archive keine Zertifikate bei . Sie müssen sie woanders kaufen. Siehe unten zum Beispiel.

Weitere Informationen zur Peer-SSL-Zertifikatüberprüfung finden Sie unter http://curl.haxx.se/docs/sslcerts.html

2
user1671192

Obwohl dieser Fehler im Fall der Verwendung von git clone anstelle der Verwendung von curl auftrat, bin ich kürzlich über eine identische Fehlermeldung gestolpert: 

Peer-Zertifikat kann nicht mit bekannten CA-Zertifikaten authentifiziert werden

Ähnlich wie bei Arthhs Ergebnissen funktionierte etwas für CentOS 6 (um HTTPS-URLs mit git clone für verwandte GitLab-Repositorys erfolgreich zu verwenden)involvierte das Aktualisieren der vertrauenswürdigen Zertifikate auf dem Server (dh dem Server, auf dem.) verwendet HTTPS), verwendet die folgenden Schritte :

  1. Sudo yum install ca-certificates
  2. Sudo update-ca-trust enable
  3. Sudo cp /path/to/your_new_cert.crt /etc/pki/ca-trust/source/anchors/
  4. Sudo update-ca-trust extract

Möglicherweise können dieselben Zertifikatsschritte für den Fall curl(oder ähnliche Szenarien)für Benutzer von CentOS in der Zukunft angewendet werden.

1
summea

In 'C' 

curl_easy_setopt (curl_handle, CURLOPT_SSL_VERIFYPEER, 0);

arbeitete für mich

0
Leo smith