1

Тема: Проблеми з SSL CA при використанні curl через php

Хочу прикрутити Google reCaptcha'у на свій сайт, але коли намагаюсь надсилати запит для перевірки отриманих даних зі своєї веб-форми за допомогою curl через PHP до Google (дописуючи необхідні параметри), то видає помилку SSL certificate problem: unable to get local issuer certificate.

Де взяти той самий сертифікат, який php намагається перевірити? Я так розумію, що цей сертифікат повинен гарантувати, що сайт, до якого йде запит має "правильний" сертифікат і йому можна довіряти.

Робив хтось вже curl-запити через HTTPS протокол?

P.S. В мене Windows 7, OpenSSL-Win64 встановлено, але я особливо не розбирався що саме необхідно, щоб правильно встановлювати... до речі, composer здається без проблем використовує цей OpenSSL.

2 Востаннє редагувалося ktretyak (11.01.2015 15:17:10)

Re: Проблеми з SSL CA при використанні curl через php

Бугага! Затратив годину часу щоб полазити по інтернеті у пошуках вирішення проблеми, але в гугла документація надає навіть php-код щоб використовувати його рекапчу.

Виявляється можна робити зовнішні запити не тільки через curl:

    /**
     * Submits an HTTP GET to a reCAPTCHA server.
     *
     * @param string $path url path to recaptcha server.
     * @param array  $data array of parameters to be sent.
     *
     * @return array response
     */
    private function _submitHTTPGet($path, $data)
    {
        $req = $this->_encodeQS($data);
        $response = file_get_contents($path . $req);
        return $response;
    }

3 Востаннє редагувалося ktretyak (11.01.2015 20:01:24)

Re: Проблеми з SSL CA при використанні curl через php

Виявив дрібний баг в коді, а також відкритий Pull-Request по ньому ще півтора місяці назад, причому виявляється, що ключ error-codes зараз взагалі не повертається...

Оновлено:
Ключ error-codes іноді повертається, а іноді ні. Якщо просто перейти по посиланню https://www.google.com/recaptcha/api/siteverify, то він повертається...

4

Re: Проблеми з SSL CA при використанні curl через php

це є?

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 

5

Re: Проблеми з SSL CA при використанні curl через php

VTrim написав:

це є?

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 

Ні, таке не ставив, хоча цей варіант бачив в інтернеті. Я так би і зробив, якщо б не вдалось це зробити як належить.

6

Re: Проблеми з SSL CA при використанні curl через php

Так file_get_contents повільніший за курл.

7

Re: Проблеми з SSL CA при використанні curl через php

Sensetivity написав:

Так file_get_contents повільніший за курл.

Тобто ви знаєте як вирішити проблему, підняту в першому повідомленні даної теми?

8 Востаннє редагувалося Sensetivity (12.01.2015 13:28:03)

Re: Проблеми з SSL CA при використанні curl через php

ktretyak написав:
Sensetivity написав:

Так file_get_contents повільніший за курл.

Тобто ви знаєте як вирішити проблему, підняту в першому повідомленні даної теми?

Ні, не знаю. Не доводилося працювати з SSL

9

Re: Проблеми з SSL CA при використанні curl через php

спробуйте бібліотеку guzzle вона походу норма паше з сертифікатами.

10

Re: Проблеми з SSL CA при використанні curl через php

Мали проблему з ссш ключами для курлу десь місяць тому, скінчилось тим що перегенерували їх обновивши версію ссш на сервері. Поки що політ нормальний