Upgrade curl: 7.21.7-4 -> 7.23.1-1 psuje php-curl+ssl
Jacek Osiecki
joshua at hybrid.pl
Thu Jan 5 12:07:35 CET 2012
Witam,
Klient zwrócił mi uwagę, że nie działa mu php-curl w połączeniu z SSL.
Pamiętając że gnutls jest z definicji zepsuty (twierdzi że np. mbank ma
nieprawidłowy certyfikat) poprosiłem o szczegóły, ale okazało się że
jednak chodzi o strony typu accounts.google.com.
Poinformowany, że skrypt działa u klienta na serwerze developerskim,
postanowiłem potestować na różnych swoich wirtualkach... i w końcu
znalazłem taką na której działa a po upgradzie już nie.
O dziwo, winny nie był upgrade gnutls tylko... curl.
Przy curl i curl-libs w wersji 7.21.7-4 skrypt zwraca konkretne odpowiedzi
od accounts.google.com, natomiast gdy się zrobi upgrade do 7.23.1-1 - pojawia
się tylko coś takiego:
curlError = gnutls_handshake() failed: No supported cipher suites have been found.
Po wczytaniu się w źródła wyszło że CHYBA chodzi o listę certyfikatów...
ale jednak to nie to - wystarczył downgrade curl i curl-libs by wszystko
wróciło do normy.
W załączniku podrzuciłem plik demonstrujący powyższy błąd.
Czy ktoś bardziej kumaty ode mnie może sprawdzić co właściwie jest nie
tak? Może problem wynika jednak z jakichś okołocurlowych przyległości
i da się go rozwiązać inaczej niż downgradem curla?
Jeszcze z ciekawostek - odpalenie:
curl https://accounts.google.com/o/oauth2/token
nie wywołuje takiego błędu...
Pozdrawiam,
--
Jacek Osiecki joshua at ceti.pl GG:3828944
I don't want something I need. I want something I want.
-------------- next part --------------
<?
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://accounts.google.com/o/oauth2/token");
curl_setopt($ch, CURLOPT_HTTPHEADER, array());
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "#POST#");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "test google-api-php-client/0.4.7#");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_FAILONERROR, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
$respData = curl_exec($ch);
var_dump($ch);
var_dump($respData);
$respHeaderSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$respHttpCode = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curlErrorNum = curl_errno($ch);
$curlError = curl_error($ch);
print("curlErrorNum = $curlErrorNum\n");
print("curlError = $curlError\n");
curl_close($ch);
More information about the pld-devel-pl
mailing list