Сертификат клиента X509 отсутствует - PullRequest
0 голосов
/ 03 марта 2019

Я получил то, что хотел (токен) через curl в командной строке (но нужно это в php), используя:

curl -d "client_id=theClient" -d "grant_type=password" "https://auth.theClient.de/auth/openid-co/token"

, затем я попытался реализовать это в PHP:

<?php
$requestURL = 'https://auth.theClient.de/auth/openid-co/token';
$postData = "grant_type=password&client_id=theClient&scope=openid";
$headers[0] = 'Content-Type: application/x-www-form-urlencoded';
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $requestURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
$response = curl_exec($ch);
$responseArray = json_decode($response, TRUE);
var_export($responseArray);

должен выдать мне токен, но я получил неверный запрос с ответом:

array (
   'error_description' => 'X509 client certificate is missing.',
   'error' => 'invalid_request',
)

я импортировал сертификат в браузер Chrome (Настройки> Дополнительно).

Я предполагаю, что сертификат отсутствует в моей конфигурации внутри веб-сервера apache или внутри скрипта php (хранилище ключей p12).

...