Я пытаюсь взаимодействовать с клиентом API Google PHP, и у меня возникают проблемы с сертификатом, предоставленным Google:
Ошибка Google:
function gtElInit() {var lib = new google.translate.TranslateService();lib.translatePage('en', 'ru', function () {});}SSL certificate problem, verify that the CA cert is OK. Retrying with the CA cert bundle from google-api-php-client.
Ошибка PHP cURL:
SSL certificate problem: unable to get local issuer certificate
У меня не было никаких проблем в Linux-боксе. Эти ошибки происходят в окне Windows.
Я пробовал несколько различных решений:
https://code.google.com/
http://richardwarrender.com/
но безрезультатно.
PS:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
не будет приемлемым …
Предоставлено rmckay на веб-сайте dot com dot au:
Пожалуйста, всем, прекратите настройку CURLOPT_SSL_VERIFYPEER на false или 0. Если ваша установка PHP не имеет обновленного набора корневых сертификатов CA, загрузите ее на сайт curl и сохраните на своем сервере:
http://curl.haxx.se/docs/caextract.html
Затем установите путь к нему в файле php.ini
, например, в Windows:
curl.cainfo=c:\php\cacert.pem
Отключение CURLOPT_SSL_VERIFYPEER
позволяет CURLOPT_SSL_VERIFYPEER
посередине (MITM) атаковать , которых вы не хотите!
\ Google_Client :: $ io-> setOptions (массив (CURLOPT_SSL_VERIFYPEER => FALSE));
@sKophek верен, и я ценю помощь, поскольку я боролся с этим. Для тех, кто предпочитает более подробно сенсорный, вот он: (это правда, по крайней мере, для версии google-api-php-клиента 0.6.x)
1) \ google-api-php-client \ src \ io \ Google_CurlIO.php
2) private $curlParams = array ( ... CURLOPT_SSL_VERIFYPEER => false, ... );