Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Curl sa sertifikatima - segmetation fault

[es] :: PHP :: Curl sa sertifikatima - segmetation fault

[ Pregleda: 2214 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 875
*.teol.net.



+148 Profil

icon Curl sa sertifikatima - segmetation fault02.09.2013. u 14:20 - pre 129 meseci
Dakle treba da konzumiram neki web servis preko HTTPS-a. Dobio sam .p12 fajl koji sadrzi sertifikat za moj sajt, sertifikat CA i moj privatni kljuc. Ovo sam sve extraktovao u .pem fajlove sa openssl iz komandne linije.

Definisao sam sledece konstante:

PAYMENT_CA_CERT - putanja do foldera sa CA sertifikatom
PAYMENT_CERTIFICATE - putanja do mog sertifikata
PAYMENT_KEY - putanja do mog privatnog kljuca
PAYMENT_PASSWORD - prazno, tj. nisam siguran sta ovdje treba da stoji (citaj dalje).

Koristim sledeci kod da se nakacim na servis:

Code:

protected function sendRequest($params) {

        $url = PAYMENT_MERCHANT_HANDLER . http_build_query($params);

        $curl = curl_init();        

        curl_setopt($curl, CURLOPT_URL, $url); 
        curl_setopt($curl, CURLOPT_VERBOSE, 1); 
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 1); 
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); 
        curl_setopt($curl, CURLOPT_FAILONERROR, 1); 
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));

        curl_setopt($curl, CURLOPT_CAPATH, PAYMENT_CA_CERT);
        curl_setopt($curl, CURLOPT_SSLCERT, PAYMENT_CERTIFICATE);
        curl_setopt($curl, CURLOPT_SSLKEYTYPE, 'PEM');
        curl_setopt($curl, CURLOPT_SSLKEY, PAYMENT_KEY);
        // curl_setopt($curl, CURLOPT_SSLKEYPASSWD, PAYMENT_PASSWORD);


        $response = curl_exec($curl);

        if (!$response) {
            die('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl));
        }

        return $this->decodeResponse($response);
    }



Problem je u sledecem, kada pokrenem ovaj kod dobijem gresku "Unable to load client key: Incorrect password", "NSS error -8177". Ako otkomentarisem CURLOPT_SSLKEYPASSWD, onda dobijem segmentation fault:

Code:

* About to connect() to ********* port 8443 (#0)
*   Trying **.**.**.** ... * connected
* Connected to ********* (**.**.**.**) port 8443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: /root/***/ca
Segmentation fault (core dumped)


pomoc! :)

 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 875
46.239.0.*



+148 Profil

icon Re: Curl sa sertifikatima - segmetation fault22.09.2013. u 18:18 - pre 128 meseci
Ajd da odgovorim sam sebi, mozda nekom zatreba..

Problem je bio neki bug na strani servera.. Ako pri ekstraktovanju privatnog kljuca iz p12 fajla ostavim prazan passphrase, dobijam ovaj segmentation fault. Ako dam sifru, onda od CURL-a dobijem gresku "Cannot set private key", iako proslijedim uredno sifru. Identican kod radi ok na drugom serveru. Kad izbacim sifru iz privatnog kljuca naknadno sa openssl, sve radi ok..

Bem' li ga :)



 
Odgovor na temu

[es] :: PHP :: Curl sa sertifikatima - segmetation fault

[ Pregleda: 2214 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.