Z jakiegoś powodu nie mogę używać CURL z HTTPS. Wszystko działało dobrze, dopóki nie uruchomiłem aktualizacji bibliotek curl. Teraz otrzymuję tę odpowiedź podczas próby wykonania żądań CURL: Problem z certyfikatem SSL CA (ścieżka? Prawa dostępu?)
Poniższe sugestie zamieszczone tutaj dotyczące powiązanych problemów próbowałem wykonać następujące czynności:
Wyłącz weryfikację dla hosta i peera
curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
Włącz
CURLOPT_SSL_VERIFYPEER
i wskaż cacert.pem pobrany z http://curl.haxx.se/docs/caextract.htmlcurl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle");
Próbowałem również zrobić to samo z pakietem positiveSSL.ca, który został dostarczony jako pakiet certyfikatu CA dla serwera, z którym próbuję się połączyć.
Edytuj ustawienia php ini za pomocą
curl.cainfo=cacert.pem
(plik w tym samym katalogu i dostępny dla apache)Zmień nazwę
/etc/pki/nssdb
na/etc/pki/nssdb.old
Niestety żadne z powyższych nie jest w stanie rozwiązać mojego problemu i ciągle pojawia się komunikat Problem z komunikatem SSL CA cert (ścieżka? Prawa dostępu?).
I przede wszystkim nie potrzebuję tej weryfikacji (mam świadomość problemów z bezpieczeństwem).
Czy ktoś ma jakieś inne sugestie?
AKTUALIZACJA
Po aktualizacji do najnowszych bibliotek i ponownym uruchomieniu całego pudełka, nie tylko apache, który robiłem, wszystko wydaje się teraz znowu działać !!!
Odpowiedzi:
Zgodnie z dokumentacją: aby zweryfikować certyfikat hosta lub równorzędnego, należy określić alternatywne certyfikaty z
CURLOPT_CAINFO
opcją lub katalog certyfikatów można określić za pomocąCURLOPT_CAPATH
opcji.Spójrz także
CURLOPT_SSL_VERIFYHOST:
źródło
SSL verification disabled
)Mieliśmy ten sam problem na maszynie CentOS7. Wyłączenie
VERIFYHOST
VERIFYPEER
nie rozwiązało problemu, nie mieliśmy już błędu cURL, ale odpowiedź nadal była nieprawidłowa. Wykonanie awget
do tego samego odsyłacza co cURL również spowodowało błąd certyfikatu.-> Nasze rozwiązanie polegało również na ponownym uruchomieniu VPS, co rozwiązało problem i mogliśmy ponownie wykonać żądanie.
Dla nas wydawało się to problemem zepsucia pamięci. Ponowne uruchomienie VPS ponownie załadowało bibliotekę do pamięci i teraz działa. Jeśli więc powyższe rozwiązanie
@clover
nie działa, spróbuj ponownie uruchomić komputer.źródło