Проблема PHP cURL SSL с GoDaddy: проблема с сертификатом SSL: невозможно получить сертификат локального эмитента - PullRequest
0 голосов
/ 04 июля 2019

У меня проблема с новым сертификатом SSL от GoDaddy, вот мой код:

<?php
$url = "https://myurl.com";
$ch = curl_init($url);

$certificate_location = "ca-bundle.crt"; // modify this line accordingly (may need to be absolute)
curl_setopt($ch, CURLOPT_CAINFO, $certificate_location);
curl_setopt($ch, CURLOPT_CAPATH, $certificate_location);

curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($ch, CURLOPT_FORBID_REUSE, TRUE);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);

$result = curl_exec($ch);
$errtext = curl_error($ch);
$errnum = curl_errno($ch);

var_dump($result);
var_dump($errtext);
var_dump($errnum);

В результате получается error 60, что составляет SSL certificate problem: unable to get local issuer certificate

попытался получить последние сертификаты CA, извлеченные из Mozilla и указав cURL, чтобы использовать его, но ничего не работает.есть идеи?

1 Ответ

0 голосов
/ 05 июля 2019

Заменить приведенную ниже строку вызова curl

curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, TRUE);

К

curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, FALSE);

CURLOPT_SSL_VERIFYPEER: эта опция указывает cURL проверять подлинность сертификата SSL на сервере.

если вы хотите проверить одноранговое соединение, тогда

1) Включите mod_ssl в Apache и php_openssl.dll в php.ini 2) Добавьте эти строки вашего сертификата в файлы php.ini с путем:

curl.cainfo = "yourpath / cacert.pem" openssl.cafile = "yourpath / cacert.pem"

3) И перезагрузите сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...