cURL, CURLOPT_SSL_VERIFYPEER true i plik crt

0

Witam, piszę skrypt, który będzie się logować do mojego banku i sprawdzał wybrane przeze mnie rzeczy. Używam do tego cURL'a i autoryzacji https (CURLOPT_SSL_VERIFYPEER TRUE). Całość testuję na localhoście, Win7, Webserv. Mam taki oto skrypcik:

$c=curl_init();
curl_setopt($c, CURLOPT_URL, 'https://www.ipko.pl/ikd');

curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($c, CURLOPT_CAINFO, "./cert.crt");

Na moim localhoście skrypt nie działa (pokazuje biały ekran) mimo włączonego oczywiście cURL'a. Na zewnętrznym serwerze skrypt zwraca stronę logowania banku. Kiedy na zew. serwerze zmieniłem ścieżkę (na błędną) do pliku cert.crt pokazywał się biały ekran jak na localhoście. Próbowałem już podawania kilku rodzajów ścieżek do pliku:

cert.crt
/cert.crt
./cert.crt
D:/webserv/httpd/ipko/cert.crt
D://webserv//httpd//ipko//cert.crt
D:\webserv\httpd\ipko\cert.crt
D:\webserv\httpd\ipko\cert.crt

  • funkcji do określania ścieżki pliku na dysku

nic nie działa.

curl_getinfo zwraca:

Array
(
[url] => https://www.ipko.pl/ikd
[content_type] =>
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.031
[namelookup_time] => 0
[connect_time] => 0.047
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0
[redirect_time] => 0
[certinfo] => Array
(
)

[redirect_url] => 

)

Może mi ktoś pomóc? siedzę nad tym od rana i jak sądzę rozwiązanie wadzi mi o nos, ale jakoś nie mogę go zauważyć. Pozdrawiam.

0

Ps. wiem, że można użyć CURLOPT_SSL_VERIFYPEER FALSE i będzie śmigało, ale wole łączyć się przez https.

0

Z tego co ja wiem VERIFYPEER pomija weryfikację poprawności certyfikatow, ale nie rezygnuje wtedy z połączenia SSL ;) (zresztą sprawdź sobie przez jakiegoś wiresharka czy fiddlera)

A ogólnie zobacz czy masz coś w curl_error()

0

curl_error:

error setting certificate verify locations: CAfile: cert.crt CApath: none

ustawiłem CAPATH na lokalizacje pliku zeby jednoczesnie miec CAFILE i CAINFO jednocześnie, też nie pomaga. Kompletnie nie wiem co z tą lokalizacją nie tak... file_exists dla cert.crt wskazuje TRUE

Nie znalazłem w specyfikacji tego, że CURLOPT_SSL_VERIFYPEER FALSE łączy się przez SSL, a mam problem z obsługą snifferów na moim kompie. No i mimo wszystko wolałbym weryfikować ten certyfikat.

W każdym razie dzięki za próbę pomocy, ale może jakieś inne pomysły masz/ktoś ma? Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1