Frage

Ich möchte meine Stammzertifikate für die Verwendung mit cURL und PHP auf dem neuesten Stand halten curl befehl, jedoch gibt es derzeit keinen Parameter, um die aktuelle Datei herunterzuladen, die für eine ordnungsgemäße sichere Verbindung erforderlich ist, und um sie auf dem neuesten Stand zu halten.

Und Beispiel für die Verwendung von curl in PHP für eine sichere Verbindung, die eine Datei mit dem Namen benötigt cacert.pem (PEM-codierte Zertifikatskette zur Validierung von Remoteverbindungen) lautet wie folgt :

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_CAINFO, "pathto/cacert.pem");
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
if (!($data = curl_exec($ch))) {
    echo "No data received";
} else {
    echo strlen($data) + " total byte(s)";
}
curl_close($ch);

Während die meisten Leute einfach einstellen CURLOPT_SSL_VERIFYPEER zu falsch und ignoriert somit das Problem, was schlecht ist .Sie können sehen Sie hier, wo eine Zertifizierungsstelle zeigt, dass, wenn Sie diese Datei nicht aktuell haben, die einzige Möglichkeit, eine Verbindung zu einem sicheren Server herzustellen, darin besteht, die Zertifikatsprüfung zu deaktivieren, und warnt weiter vor den Auswirkungen der Deaktivierung der Peer-Überprüfung.

Was ich beantrage, ist eine legitime Möglichkeit, eine lokale Kopie von zu pflegen cacert.pem also das, wenn ich benutze curl in PHP, um mit anderen Servern zu kommunizieren, kann ich dies weiterhin tun sicher .

Dies ist keine Anforderung für eine externe Ressource oder einen externen Link usw., aber aufgrund der Art des Problems ist es wahrscheinlich, dass dies die EINZIGE Möglichkeit ist, dies zu beheben, da es eine kontinuierliche Aktualisierung erfordern würde, wenn Zertifikatsketten widerrufen werden.Bis heute gibt es keine Möglichkeit, diese Datei entweder als Teil der Distribution von curl selbst oder von PHP oder der Curl-Bibliothek für PHP zu erhalten und weiterhin zu pflegen.Es ist zwar entmutigend, dass dies nicht etwas ist, was ein einfacher Aktualisierungsbefehl mag curl --update-root-ca wäre schön, es existiert in keiner Form.

War es hilfreich?

Lösung

Seit ich diesen Artikel geschrieben habe (und damit dieses Umschreiben), konnte ich mein eigenes Problem lösen, indem ich Links direkt zum einfügte nur legitime Quelle für die Pflege dieser Datei, die auf der Website bereitgestellt wird, die vom Autor von verwaltet wird curl an dieser Standort

Mit fortschreitender Technologie wurde diese Frage aktualisiert, um zu zeigen, wie man sie verwendet curl in PHP und erzwingen Sie eine TLS v1.2-Verbindung (etwas, das bestimmte Transaktionsanbieter benötigen oder empfehlen und möglicherweise keine Informationen dazu bereitstellen).

In Bezug auf Zertifizierungsstellen gibt es einige wichtige Stammstellen wie z :

  • Symantec
  • Rapids SL
  • taute
  • tetik
  • Comodo

Sowie andere Behörden ihrer Natur nach wie

  • Microsoft
  • Mozilla
  • Google

Das kann ein Rahmen für jeden sein, der sein eigenes Cacert pflegen möchte.pem.Denken Sie daran, dass Sie ihre Sperrlisten (Zertifikate, die verletzt oder abgelaufen sind) von den jeweiligen Zertifikatsperrlisten herunterladen müssten, um einen ordnungsgemäßen Vertrauensmechanismus aufrechtzuerhalten, während Sie in der Lage sein sollten, einfach ihre Stammzertifikatsketten herunterzuladen und diese als zu verwenden eine lokale autorative Datei als Ihr cacert.pem.

Andere Tipps

cacert.pem wird verwendet von curl.Es gibt keine ultimative Autorität, der Zertifikate zu vertrauen sind, aber die von Webbrowsern verwendeten Listen sind eine gute Quelle.Diese Listen werden aufgrund von Änderungen der Zertifizierungsstelle und Änderungen der Sicherheitspraktiken ständig aktualisiert.

Die Autoren von curl pflegen Sie ein Werkzeug, das a extrahieren kann cacert.pem von Firefox und veröffentlichen Sie eine einigermaßen aktuelle Ausgabe auf ihrer Website:

  • cacert.pem erstellt von den Autoren von curl
  • caextrakt:laden Sie das Tool für die sicherheitsbewusstesten herunter, überprüfen Sie den Quellcode und führen Sie es mit Ihrem eigenen Firefox aus.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top