Проблема с сертификатом SSL: невозможно получить сертификат локального эмитента - PullRequest
0 голосов
/ 09 ноября 2018

Я создаю файл php-curl для akses API с другого сервера:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://192.168.4.2/sdk_service/rest/users/login/v1.1');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
// curl_setopt($ch, CURLOPT_CAINFO, "C:/xampp/htdocs/curl/cibinong/cacert.pem");
// curl_setopt($ch, CURLOPT_CAPATH, "C:/xampp/htdocs/curl/cibinong/");
$result = curl_exec($ch);
if (curl_error($ch)) {
    echo curl_error($ch);
}
print_r($result);

Я получил сообщение об ошибке:

Проблема с сертификатом SSL: невозможно получить сертификат локального эмитента

Помогите мне, может я что-то упустил?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Вы обращаетесь к URL-адресу HTTPS с помощью IP-адреса, который на самом деле очень редко работает. Большинство сайтов требуют, чтобы имя SNI использовалось для получения правильного сертификата сервера, и многие центры сертификации даже не продают вам сертификаты для простых IP-адресов.

Вместо того, чтобы отключить проверку сертификата, вы должны рассмотреть доступ к этому серверу, используя его «правильное» и официальное имя, чтобы сервер знал, какой сертификат следует предлагать при рукопожатии TLS.

Если вы действительно хотите подключиться к этому конкретному IP-адресу и по-прежнему использовать правильное имя в URL, вы можете сделать это с помощью опции CURLOPT_RESOLVE. Документировано среди других вариантов CURL.

Не соглашайтесь с отключением проверки сертификата. Это плохой обходной путь, который рискует остаться навсегда и сделает вас уязвимым.

0 голосов
/ 09 ноября 2018

Проблема в том, что вы получаете недействительный сертификат SSL, вам необходимо отключить некоторые проверки. Можете ли вы попробовать это со следующими параметрами?

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

При этом будет пропущена проверка хоста SSL и узла SSL. Потому что это то, что вам нужно в этом случае.

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