Aktivieren der SSL-Unterstützung für CURL in XAMPP
Ich bin über eine verschlüsselte PHP-Skript, das erfordert SSL-Unterstützung für CURL.
Ich bin derzeit mit XAMPP für die lokale Entwicklung und müssen wissen, wie Sie aktualisieren Sie die Standard-CURL so, dass SSL aktiviert ist über es.
Dem Grund bin ich auf der Suche für ein upgrade/support ist, dass ich immer die folgende Fehlermeldung, die, wenn Sie gegoogelt und etc. Ich verstehe, dass SSL nicht unterstützt CURL auf meinem Rechner.
SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Jemand irgendwelche Empfehlungen für mich, bitte?
Meine Aktuelle lokale server config:
XAMPP 1.7.3
cURL support aktiviert
cURL Informationen 7.19.6
Apache-Version Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14
OpenSSL/0.9.8 l mod_autoindex_color
PHP/5.3.1 mod_apreq2-20090110/2.7.1
mod_perl/2.0.4 Perl/v5.10.1
Geladenen Module core mod_win32 mpm_winnt http_core mod_so mod_actions
mod_alias mod_asis mod_auth_basic
mod_auth_digest mod_authn_default
mod_authn_file mod_authz_default
mod_authz_groupfile mod_authz_host
mod_authz_user mod_cgi mod_dav
mod_dav_fs mod_dir mod_dav_lock
mod_env Sie mod_headers. mod_include
mod_info mod_isapi mod_log_config
Sie mod_mime mod_negotiation mod_rewrite
mod_setenvif mod_ssl mod_status
mod_vhost_alias mod_autoindex_color
mod_perl mod_php5 mod_apreq2
SERVER_SIGNATURE Apache/2.2.14
(Win32) DAV/2 mod_ssl/2.2.14
OpenSSL/0.9.8 l mod_autoindex_color
PHP/5.3.1 mod_apreq2-20090110/2.7.1
mod_perl/2.0.4 Perl/v5.10.1 Server an
localhost Port 80
SERVER_SOFTWARE Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14
OpenSSL/0.9.8 l mod_autoindex_color
PHP/5.3.1 mod_apreq2-20090110/2.7.1
mod_perl/2.0.4 Perl/v5.10.1
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht unterstützt, auf Ihrem Rechner? Der Fehler, den Sie haben gebucht bedeutet, dass CURL nicht in der Lage zu überprüfen Sie das SSL-Zertifikat für den remote-server, und nicht unbedingt auf eine bestimmte Unzulänglichkeit Ihrer Maschine.
In meinen früheren Erfahrungen mit CURL, ist es standardmäßig nicht akzeptieren/Vertrauen keine Zertifikate. Je nach deinem setup und was Sie planen zu tun, möchten Sie möglicherweise darauf Vertrauen, dass eine einzelne
selbstsigniertes Zertifikat[[Nicht überprüfen kann self-signed certs!]](z.B. von einem anderen Rechner aus, die Sie ausführen)oder Sie wollen darauf Vertrauen, dass eine wahre (Certificate Authority, die es ermöglichen, überprüfung der Zertifikate von dieser ZERTIFIZIERUNGSSTELLE signierte). Dieses tutorial ist ziemlich einfach, vorausgesetzt, Sie sind vertraut mit, wie ändern Sie den CURL-Einstellungen:http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/
Können Sie wählen, und wählen Sie root-CAs, wenn du diesen Weg einzuschlagen, aber wenn Sie nur die Sicherung der transfers zwischen zwei Ihrer eigenen Maschinen, die Sie nur benötigen, um CURL, um das Vertrauen der anderen Maschine certificate.
Auf der anderen Seite, wenn Sie in der Tat haben einige tiefere problem mit SSL, es kann haben ergab sich aus einer beliebigen Anzahl von Dingen, wie gebaut, allerdings ohne SSL-Unterstützung. Wenn Sie, konfigurieren und kompilieren Ihre eigene build von CURL, möchten Sie vielleicht werfen Sie einen Blick auf http://curl.haxx.se/docs/faq.html auf die Themen SSL, einschließlich
http://curl.haxx.se/docs/sslcerts.html und
http://curl.haxx.se/docs/faq.html#What_certificates_do_I_need_when
Beachten Sie im letzteren link (die FAQ), die selbst-signierte Zertifikate NICHT verifiziert werden können. Wenn Sie versuchen eine Verbindung zu einem anderen Ihrer eigenen Server, dessen Zertifikat werden von einer ZERTIFIZIERUNGSSTELLE signiert und das Zertifikat der CA als vertrauenswürdig CURL für die Verbindung um erfolgreich zu sein. Es gibt Kostenlose CAs heraus dort, wenn Sie nur brauchen, um eine Signatur oder Sie können Ihre eigene ZERTIFIZIERUNGSSTELLE (In meiner Erfahrung, es ist nur zehn mal einfacher, es zu bekommen unterzeichnet von jemandem, der bereits eingerichtet, dies zu tun). Wenn der andere server hostet eine sichere Website, die sich mit der "realen Welt" (Geld, Produkte, persönliche Informationen, etc.), seine cert werden sollte, oder man sollte es von einer vertrauten CA signiert sowieso (VISA, Equifax, Comodo, finden Sie eine Liste von vertrauenswürdigen root-CAs, die in jedem browser).
Habe ich abgedeckt, was kann ich in der Antwort auf die Fehler, aber wenn alles nichts hilft, ein wenig mehr Informationen über dein setup und system helfen könnte. 🙂
Eine wirklich einfache Lösung, die für mich gearbeitet wurde, zu nennen:
vor dem Aufruf:
in der php-Datei.
Ich glaube, dass dies schaltet die überprüfung von SSL-Zertifikaten.
sollten Sie melden Sie Ihren öffentlichen Schlüssel bei einer Zertifizierungsstelle (certificate authority, es gibt einige script, die diese Dinge tun kann, für Sie ) oder senden Sie Ihr eine Bescheinigung Unterschreiben Antrag und Unterschreiben Sie es mit Ihrem eigenen CA erstellt oder einige freie Zertifizierungsstelle ......
Pfad für die CA.pl Skript /usr/lib/ssl/misc/CA.pl
dieser Befehl erstellt eine Zertifikat-Autorität, die reuired signieren Sie Ihre server key
der öffentliche Schlüssel dieser ZERTIFIZIERUNGSSTELLE muss auch einbezogen werden in die CA_file
erstellt einen privaten Schlüssel für den server und eine Zertifizierung beantragen
erstellt das server-Zertifikat aus dem privaten Schlüssel und der Antrag (mit Beteiligung der CA private key)