Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Авторизация на вебсервисе с помощью сертификата SSL
Форумы портала PHP.SU » » Работа с сетью » Авторизация на вебсервисе с помощью сертификата SSL

Страниц (1): [1]
 

1. АлексНик - 03 Декабря, 2021 - 16:28:51 - перейти к сообщению
Для авторизации на вебсервисе предлагается отправить POST запрос следующего формата.

POST /Authenticate HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: DiadocAuth ddauth_api_client_id=testClient- 8ee1638deae84c86b8e2069955c2825a
Content-Length: 1252
Connection: Keep-Alive
<Двоичное DER-представление X.509-сертификата пользователя>


Вопрос возникает отправкой Двоичного DER-представление X.509-сертификата пользователя
Имеется файл этого самого DER-представление X.509-сертификата пользователя,
Каким образом его можно отправить в пост запрос
2. Vladimir Kheifets - 03 Декабря, 2021 - 17:18:34 - перейти к сообщению
АлексНик пишет:
Для авторизации на вебсервисе предлагается отправить POST запрос следующего формата.

POST /Authenticate HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: DiadocAuth ddauth_api_client_id=testClient- 8ee1638deae84c86b8e2069955c2825a
Content-Length: 1252
Connection: Keep-Alive
<Двоичное DER-представление X.509-сертификата пользователя>


Вопрос возникает отправкой Двоичного DER-представление X.509-сертификата пользователя
Имеется файл этого самого DER-представление X.509-сертификата пользователя,
Каким образом его можно отправить в пост запрос


Добрый день!
Чем Вы отправляете POST запрос - PHP-cURL, JS-AJAX?
Могли бы Вы показать код?
Обычно, в документации вебсервиса дают рекомендации и примеры кодов.
3. АлексНик - 03 Декабря, 2021 - 17:34:28 - перейти к сообщению
Пробоал так.
PHP:
скопировать код в буфер обмена
  1.         $postdata=file_get_contents('C:/OSPanel/domains/ddk/gorizont.cer');
  2.         $opts=array('http'=>
  3.                 array(
  4.                         //'ssl'=>$ssl,
  5.                         'method'=>'POST',
  6.                         'header'=>"Content-Type: application/x-www-form-urlencoded\nConnection: Keep-Alive\nAuthorization: DiadocAuth ddauth_api_client_id=testClient",
  7.                         'content'=>$postdata
  8.                 )
  9.         );
  10.         $context=stream_context_create($opts);
  11.         $result=file_get_contents('diadoc-api.kontur.ru/Authenticate',false,$context);
4. Vladimir Kheifets - 04 Декабря, 2021 - 07:34:39 - перейти к сообщению
АлексНик пишет:
Пробоал так.
PHP:
скопировать код в буфер обмена
  1.         $postdata=file_get_contents('C:/OSPanel/domains/ddk/gorizont.cer');
  2.         $opts=array('http'=>
  3.                 array(
  4.                         //'ssl'=>$ssl,
  5.                         'method'=>'POST',
  6.                         'header'=>"Content-Type: application/x-www-form-urlencoded\nConnection: Keep-Alive\nAuthorization: DiadocAuth ddauth_api_client_id=testClient",
  7.                         'content'=>$postdata
  8.                 )
  9.         );
  10.         $context=stream_context_create($opts);
  11.         $result=file_get_contents('diadoc-api.kontur.ru/Authenticate',false,$context);


Добрый день!
Ошибка в Content-Type: application/x-www-form-urlencoded
См. https://api-docs[dot]diadoc[dot]ru/ru/la[dot][dot][dot]nticate[dot]html#id2
Цитата:
Аутентификация по сертификату:
Необходимо указать type - certificate, в тело запроса передать бинарное содержимое
открытого ключа сертификата c заголовком Content-Type: application/octet-stream.
Советую Вам переписть код на cURL PHP.
Удачи!
5. АлексНик - 04 Декабря, 2021 - 10:04:20 - перейти к сообщению
Спасибо за ответ поигрался с заголовками, вроде заработало.
Не могу найти информации доступны ли для функции file_get_contents() просмотр заголовков ответа при использовании протокола НTTP. Если нет, придется использовать CURL
6. Vladimir Kheifets - 04 Декабря, 2021 - 14:23:21 - перейти к сообщению
АлексНик пишет:
Спасибо за ответ поигрался с заголовками, вроде заработало.
Не могу найти информации доступны ли для функции file_get_contents() просмотр заголовков ответа при использовании протокола НTTP. Если нет, придется использовать CURL

см. $http_response_header
https://www.php.net/manual/de/re...sponseheader.php
Удачи!

 

Powered by ExBB FM 1.0 RC1