Witam,

Mam taki problem gdy chcę się połączyć curlem z bankiem w celu pobrania pliku. Otrzymałem certyfikat który w przeglądarce działa natomiast gdy dołączam go curl otrzymuje komunikat

SSL read: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure, errno 0

Poniżej mój testowy kod. Proszę o info co mogę robić nie tak.

  1. <?php
  2. $ch = curl_init('https://www.bank.pl');
  3. curl_setopt($ch, CURLOPT_HEADER, 1);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  6. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  7. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  8. curl_setopt($ch, CURLOPT_CAPATH,getcwd()."plik_certyfikatu");
  9. $zm=curl_exec($ch);
  10.  
  11. if (curl_errno($ch)) {
  12. echo 'Błąd #' . curl_errno($ch) . ': ' . curl_error($ch);
  13. }
  14. curl_close($ch);
  15. ?>


Udało mi się rozwiązać, problem był w tym że miałem certyfikat P12.
  1. curl_setopt($ch, CURLOPT_SSLCERT, getcwd().'/nazwa_certyfikatu.p12');
  2. curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'P12');
  3. curl_setopt($ch, CURLOPT_SSLCERTPASSWD, 'haslo');