powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Rest Client + SSL
59 сообщений из 59, показаны все 3 страниц
Delphi Rest Client + SSL
    #39882958
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, возникла проблема c сабжем. Предыстория тут https://www.sql.ru/forum/1309610-4/markirovka-lekarstvennyh-sredstv

Delphi Rest Client оказываетеся доступен только с поздних версий, что вызывает сильную проблему, так как проект у меня в Delphi 2007 и там установлена куча компонентов начала 2000-х, которые под эту IDE то еле нашел в свое время, когда восстанавливал этот проект. А под новые версии их точно нет. Так что теперь возникла такая вот дилемма:
1. Оставаться на Delphi 2007 и:
1.1. Пробовать решить через стандартные Indy (обновил до 10.5.5) или
1.2. Скачать какой то сторонний Delphi Rest под эту версию
Первое пробовал вчера целый день, решал кучу проблем, в конце концов вылазит окно как на скрине
Покапавшись в этой теме (почему то окрывается только в кэше гугла), не могу побороть

https://webcache.googleusercontent.com/search?q=cache:w2bwm1DGfHIJ:https://www.sql.ru/forum/1270559/indy-ssl-ne-ponimaet-ecdhe-ecdsa-x25519 &cd=2&hl=ru&ct=clnk&gl=ru

https://webcache.googleusercontent.com/search?q=cache:5DqhlC3n15kJ:https://www.sql.ru/forum/1270559-2/indy-ssl-ne-ponimaet-ecdhe-ecdsa-x25519 &cd=1&hl=ru&ct=clnk&gl=ru

Похоже нерешаемая проблема и даже самые последние перед смертью версии Indy не могут работать с последними версиями SSL?

Со сторонним Rest Clientтоже не срослось. Нашел вот такой
https://github.com/fabriciocolombo/delphi-rest-client-api
Но как назло у него нет версии под D2007, только D7 или D2010

2. Полностью апгрейдиться до версий Delphi, где есть встроенный Delphi Rest Client. Правда придется не только кучу компонентов устанавливать но и как то решать вопрос с теми, которые уже не могут быть установлены, то есть править придется очень много

Какой путь посоветуете выбрать? По уму бы № 2, но боюсь, что увязну в портации проекта и на саму маркировку тупо не хватит времени. Если 1.1, то похоже путь в никуда, стандартными indy это не решить?
Остается небольшая надежда на 1.2 - может есть какая то возможность установить dpk для D7 или D2010 в D2007? У меня не получилось. Или еще какой-нибудь сторонний Delphi Rest Client, который можно поставить на Delphi 2007?
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39882966
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Indy вполне себе живой
2. Версия под D7 никак не отличается от версии под 2007.
3. Можно также попробовать ICS, там есть компоненты для REST
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39882971
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

у сервера https://api.sb.mdlp.crpt.ru/ - GOST R 34.10-2012 512,
сертификат выдан тестовым УЦ.


Варианты:
WinInet.dll
WinHTTP.dll
Сборка OpenSSL с ГОСТ-ом, которую получится использовать в Delphi 2007
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39882974
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010
Со сторонним Rest Clientтоже не срослось. Нашел вот такой
https://github.com/fabriciocolombo/delphi-rest-client-api
Но как назло у него нет версии под D2007, только D7 или D2010


в описании вижу:
restclient.ConnectionType := hctWinINet;

Должно помочь
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39882979
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок, всем спасибо за подсказки, попробую
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39885891
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Продолжение марлезонского балета. Из клиентов остановился на synapse (с остальным - Indy, Delphi Rest Api и прочее - не срослось), вроде наладил работу с http, но с https возникла затычка Выдает внутреннюю ошибку сервера (500), в result получаю целиком body, которое отправляю в ЧЗ Как думаете, в чем может быть загвоздка? Код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
var
  AURL, APOSTData: string;
  APOSTData2: TStringList;
  httpsend: THTTPSend;
  stream:tstringstream;
  result:TStringList;
begin
  AURL := 'https://api.stage.mdlp.crpt.ru/api/v1/documents/send';
  APOSTData2 := TStringList.create;
  APOSTData2.LoadFromFile('C:\doc.txt');
  stream:=TStringStream.Create('');
  APOSTData2.SaveToStream(stream);

  httpsend:=THTTPSend.Create;
  httpsend.MimeType:='application/json';
  httpsend.Headers.Add('Authorization: token 5607d0e8-c76c-4f0a-a6e7-f30f03f26e7b');
  httpsend.Document.LoadFromStream(stream);

  try
    httpsend.HTTPMethod('post', AURL);
    result := TStringList.Create;
    result.LoadFromStream(httpsend.Document);
  finally
    showmessage(inttostr(httpsend.ResultCode));
    result.SaveToFile('C:\mark2.txt');
  end;
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39885955
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если приходит 500. Смотртте логи на сервере.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39885969
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как я их могу посмотреть, они ж на сервере
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39885973
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010
Как я их могу посмотреть, они ж на сервере


Да не приходит у тебя 500, успокойся, смотри на уровень ниже, от сокета... код и текст ошибку)
ну или попробуй в IE открыть
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39885975
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010
Продолжение марлезонского балета. Из клиентов остановился на synapse (с остальным - Indy, Delphi Rest Api и прочее - не срослось), вроде наладил работу с http, но с https возникла затычка Выдает внутреннюю ошибку сервера (500), в result получаю целиком body, которое отправляю в ЧЗ Как думаете, в чем может быть загвоздка? Код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
var
  AURL, APOSTData: string;
  APOSTData2: TStringList;
  httpsend: THTTPSend;
  stream:tstringstream;
  result:TStringList;
begin
  AURL := 'https://api.stage.mdlp.crpt.ru/api/v1/documents/send';
  APOSTData2 := TStringList.create;
  APOSTData2.LoadFromFile('C:\doc.txt');
  stream:=TStringStream.Create('');
  APOSTData2.SaveToStream(stream);

  httpsend:=THTTPSend.Create;
  httpsend.MimeType:='application/json';
  httpsend.Headers.Add('Authorization: token 5607d0e8-c76c-4f0a-a6e7-f30f03f26e7b');
  httpsend.Document.LoadFromStream(stream);

  try
    httpsend.HTTPMethod('post', AURL);
    result := TStringList.Create;
    result.LoadFromStream(httpsend.Document);
  finally
    showmessage(inttostr(httpsend.ResultCode));
    result.SaveToFile('C:\mark2.txt');
  end;



Используй:
httpsend.Sock.LastError и httpsend.Sock.LastErrorDesc


HTTP [500 : нет информации]
Sock [11004 : Valid name, no data record of requested type] = вот что у тебя

+

// от WinHTTP: Не удается разрешить имя или адрес сервера
// от WinInet: Ошибка: 12007 Не удалось определить адрес сервера, проверьте сетевое подключение.(Service Name Not Resolved)
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39885978
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010
Продолжение марлезонского балета. Из клиентов остановился на synapse (с остальным - Indy, Delphi Rest Api и прочее - не срослось), вроде наладил работу с http, но с https возникла затычка Выдает внутреннюю ошибку сервера (500), в result получаю целиком body, которое отправляю в ЧЗ Как думаете, в чем может быть загвоздка?


Напомни мне еще раз, по https у ЧЗ - ГОСТ?
Если Да - то почему игнорируешь сообщение выше про WinInet и остановился на synapse?
Или можешь из synapse работать с ГОСТ-ом?
Для "самопроверки" - https://cpca.cryptopro.ru/
synapse - Sock [10061 : Connection refused]
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39885984
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql2012, не игнорю, Delphi Rest Client API (DRCA) вообще не работает у меня, точнее выдает ошибку 400, даже с обычным http
Как не пинал его с разными опциями (restclient.ConnectionType := hctWinINet, verifecert = и true, и false), не взлетает (см. скрин)
По нему еще примеров нифига нет, а по демкам не разобраться.
Значит synapse вообще получается не катит? Блин да что за засада то! Остается получается разбираться в DRCA либо с Indy мучаться?
Indy 10.6 у меня тоже не работает даже с простым http, synapse единственный, кто хотя бы в http работает
Может подскажете что с DRCA у меня не так? Так настроек то вообще хрен да маленько, непонятно даже как header добавить, не понимаю, почему не работает
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  vPerson : TPerson;
  vAuth: TAuth;
begin
  //vPerson := TPerson.NewFrom(123, 'Fabricio', 'fabricio.colombo.mva@gmail.com');
  vAuth:=TAuth.NewAuth('9199fe04-42c3-4e81-83b5-120eb5f129f2', '01db16f2-9a4e-4d9f-b5e8-c68f12566fd5', '6d30ff5df90437f98c443317f0beda9cdf626117', 'SIGNED_CODE');
  RestClient1.Resource('http://api.stage.mdlp.crpt.ru/api/v1/auth')
             .Accept(RestUtils.MediaType_Json)
             .ContentType(RestUtils.MediaType_Json)
//          .Post(vPerson);
             .Post(vAuth);
  ShowMessage(Inttostr(RestClient1.ResponseCode));



TAuth мой класс по аналогии с его TPerson

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
  type
 {$METHODINFO ON}
  TPerson = class(TObject)
 {$METHODINFO OFF}
   public
    id: Integer;
    name: String;
    email: String;
    createDate: TDateTime;
    class function NewFrom(Id: Integer; Name, EMail: String): TPerson;
  end;

type
 {$METHODINFO ON}
  TAuth = class(TObject)
   {$METHODINFO OFF}
 public
    client_secret: String;
    client_id: String;
    user_id: String;
    auth_type: String;
  class function NewAuth(client_secret, client_id, user_id, auth_type: String): TAuth;
  end;

implementation

{ TPerson }

class function TPerson.NewFrom(Id: Integer; Name, EMail: String): TPerson;
begin
  Result := TPerson.Create;
  Result.Id := Id;
  Result.Name := Name;
  Result.EMail := EMail;
end;

class function TAuth.NewAuth(client_secret, client_id, user_id, auth_type: String): TAuth;
begin
  Result := TAuth.Create;
  Result.client_secret := client_secret;
  Result.client_id := client_id;
  Result.user_id := user_id;
  Result.auth_type := auth_type;
end;
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39885985
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

400 - Bad Request (Неправильный запрос).
Сниффер в руки и смотри, что он отправляет, сверяй с тем, что тебе предоставили в другой ветке для примера.

Indy...? Что использует для https, опять те же dll, что и synapse?

WinInet\WinHTTP - через них путь для TLS с ГОСТ.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39885986
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql2012, спасибо за помощь! буду пытаться
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886027
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я через WinhttpRequest подключился к МДЛП, идет на ура.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886042
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov, можете пример кода привести?
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886060
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В самом крайнем случае можно сетевой обмен реализовать через DLL, в которую запихнуть либо http клиент из новых версий (основан на WinHTTP), либо вообще подключить curl.
Но вообще WinInet в плане http запросов очень простой, буквально одна функция для простого get.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886114
MikeDD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в совсем крайних случаях говорят помогает пустить шифрованный трафик через stunnel: https://www.cryptopro.ru/products/other/stunnel-msspi
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886143
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010
V.Borzov, можете пример кода привести?

Вот пример в фастскрипте (авторизация пройдена, токен уже получен):

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  WinHttp := CreateOleObject('WinHttp.WinHttpRequest.5.1');
  try 
      WinHttp.Open('POST','https://api.sb.mdlp.crpt.ru/api/v1/documents/outcome',0);
      WinHttp.setRequestHeader('Content-type', 'application/json');
      WinHttp.setRequestHeader('Cache-Control','no-cache');
      WinHttp.setRequestHeader('Accept-Language','ru');
      WinHttp.setRequestHeader('Authorization', 'token '+token);
      WinHttp.Send('{"filter":{},"start_from":0,"count":100'+'}'); 
      if WinHttp.Status <> 200 then RaiseException('outcome: status: '+vartostr(winhttp.status)+',text: '+vartostr(winhttp.statustext));
      strvalue := WinHttp.ResponseText();                   
  finally
    WinHTTP := unassigned;
  end;


Перед этим было получение токена: обращение по http (можно и в synapse даже это сделать), получение кода для подписание, потом само подписания, отправка кода и получение токена. Дальше идет подключение по https, приведённое в примере.
Я тоже воткнулся в ошибку 500 в synapse и отложил пока это всё, заинтересовавшись Winhttp, которому и OpenSSL не потребовался.

Для получения запросов рекомендую всё-таки обращаться не к WinHttp.ResponseText, ибо он взбрыкнёт с кодировкой рано или поздно, а использовать WinHTTP.ResponseStream.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886173
yooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте в файрфокс поставить расширение RESTClient и отсылать запрос через него, заодно и полные ответы сервера увидите. Мне не так давно сильно помогло. После этого использовал indy для d7.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886222
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yooo
Попробуйте в файрфокс поставить расширение RESTClient и отсылать запрос через него, заодно и полные ответы сервера увидите. Мне не так давно сильно помогло. После этого использовал indy для d7.


и работать по http?
а если https по гост?

как-то странно, всё обходят стороной..
Или Я ошибаюсь и там нет никакого ГОСТ-а в TLS, на продуктивном сервере?


p.s. // не имею никакого отношения к ЧЗ, просто глянул описания и на форумах - ссылки на API - а там https по ГОСТ
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886226
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov

Я тоже воткнулся в ошибку 500 в synapse и отложил пока это всё, заинтересовавшись Winhttp, которому и OpenSSL не потребовался.


написан он так... когда со своими сервисами словил - выяснил, что никуда запрос и не уходил и сервис не давал 500 код...
нужно на сокетную ошибку еще смотреть - пример приводил выше.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886227
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql2012

написан он так... когда со своими сервисами словил - выяснил, что никуда запрос и не уходил и сервис не давал 500 код...

Было ещё наблюдение какой-то проблемы с "Authorization token ТОКЕН", но дальше не полез, забросил. То есть synapse там что-то пытался подменить своими данными.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886280
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql2012
Или можешь из synapse работать с ГОСТ-ом?
подружить synapse с ГОСТ возможно ?
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886339
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer
sql2012
Или можешь из synapse работать с ГОСТ-ом?
подружить synapse с ГОСТ возможно ?


если внутри dll будет вызов СКЗИ с ГОСТ - да
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886342
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov, благодарю за помощь! WinHTTP тоже заработал у меня с простым http, но с https опять не взлетает (
Выдается вот такая ошибка и это как я понимаю вообще не ответ сервера, а какая внутренняя хрень WinHTTP (см. скрин)
мой код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
var
   WHttp: Variant;
   AURL, APOSTData: string;
   APOSTData2: TStringList;
   result:TStringList;
begin
  WHttp := CreateOleObject('WinHttp.WinHttpRequest.5.1');
  try
     AURL := 'https://api.stage.mdlp.crpt.ru/api/v1/documents/send';
     WHttp.Open('POST', AURL, 0);
     WHttp.setRequestHeader('Content-type', 'application/json');
     WHttp.setRequestHeader('Cache-Control','no-cache');
     WHttp.setRequestHeader('Accept-Language','ru');
     WHttp.setRequestHeader('Authorization', 'token 905234d7-c074-4bda-b769-2f7d15162573');

     APOSTData2 := TStringList.create;
     APOSTData2.LoadFromFile('C:\doc.txt');
    
     try
        WHttp.Send(APOSTData2.Text);
     finally
        if WHttp.Status <> 200 then ShowMessage('outcome: status: '+vartostr(whttp.status)+',text: '+vartostr(whttp.statustext));
        result.Add(WHttp.ResponseText());
        result.SaveToFile('C:\mark2.txt');
     end;
  finally
    WHTTP := unassigned;
  end;
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886353
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

какой IP у api.stage.mdlp.crpt.ru ?
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886363
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

арт2010, А в какой момент вылетает ошибка? После какой операции? Я подумал сначала, что дело в асинхронном выводе, и при нем надо сделать Send, а потом выполнять HTTP.WaitForResponse(10) (то есть 10 секунд ждем ответа). Если функция вернула false, то это как раз означает, что данные еще не готовы, функция еще выполняется, надо ждать далее. И далее либо снова запускаем WaitForResponse(сек) и ждем, пока true в ответ не получим, либо уходим, решив, что ждать бесполезно. Но для асинхронной работы надо, чтобы в Open второй вариант был = 1 (или true), у тебя же 0 стоит. Значит функция Send должна выполнить запрос и вернуть готовый результат.

И вообще я так и не добрался до тестового стенда, меня не пускало, а техподдержка ответ если и дала той фирме, которая делала запрос на стенд (их IP фиксированный был указан в заявке), то очень поздно. Потому работаю с песочницей, там ограничений по IP никаких нет, к тому же там присутствуют другие участники, можно с ними данными общаться. Может это сам тестовый стенд мозги компостирует.
И в тестовом стенде один будешь сидеть изолированно, сам себе создавать участников и от них создавать для себя же данных. Удобнее, когда они есть. Спросил знакомого поставщика, он тебе выделил SGTINы, приходуешь.

Вообще обязательно зарегистрируйся в форуме ЧЗ, там сейчас активность резко возросла. Темы подключения тоже обсуждаются.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886364
Фотография devart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010
Всем привет, возникла проблема c сабжем. Предыстория тут https://www.sql.ru/forum/1309610-4/markirovka-lekarstvennyh-sredstv

Delphi Rest Client оказываетеся доступен только с поздних версий, что вызывает сильную проблему, так как проект у меня в Delphi 2007 и там установлена куча компонентов начала 2000-х, которые под эту IDE то еле нашел в свое время, когда восстанавливал этот проект. А под новые версии их точно нет. Так что теперь возникла такая вот дилемма:
1. Оставаться на Delphi 2007 и:
1.1. Пробовать решить через стандартные Indy (обновил до 10.5.5) или
1.2. Скачать какой то сторонний Delphi Rest под эту версию
Первое пробовал вчера целый день, решал кучу проблем, в конце концов вылазит окно как на скрине
Покапавшись в этой теме (почему то окрывается только в кэше гугла), не могу побороть

https://webcache.googleusercontent.com/search?q=cache:w2bwm1DGfHIJ:https://www.sql.ru/forum/1270559/indy-ssl-ne-ponimaet-ecdhe-ecdsa-x25519 &cd=2&hl=ru&ct=clnk&gl=ru

https://webcache.googleusercontent.com/search?q=cache:5DqhlC3n15kJ:https://www.sql.ru/forum/1270559-2/indy-ssl-ne-ponimaet-ecdhe-ecdsa-x25519 &cd=1&hl=ru&ct=clnk&gl=ru

Похоже нерешаемая проблема и даже самые последние перед смертью версии Indy не могут работать с последними версиями SSL?

Со сторонним Rest Clientтоже не срослось. Нашел вот такой
https://github.com/fabriciocolombo/delphi-rest-client-api
Но как назло у него нет версии под D2007, только D7 или D2010

2. Полностью апгрейдиться до версий Delphi, где есть встроенный Delphi Rest Client. Правда придется не только кучу компонентов устанавливать но и как то решать вопрос с теми, которые уже не могут быть установлены, то есть править придется очень много

Какой путь посоветуете выбрать? По уму бы № 2, но боюсь, что увязну в портации проекта и на саму маркировку тупо не хватит времени. Если 1.1, то похоже путь в никуда, стандартными indy это не решить?
Остается небольшая надежда на 1.2 - может есть какая то возможность установить dpk для D7 или D2010 в D2007? У меня не получилось. Или еще какой-нибудь сторонний Delphi Rest Client, который можно поставить на Delphi 2007?

Вы можете использовать компонент TScHttpWebRequest: https://www.devart.com/sbridge/docs/tschttpwebrequest.htm, который поддерживает как HTTP так и HTTPS протоколы, для работы с Rest серверами.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886384
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql2012,
185.196.171.27
Но он, во-первых, не прописан ни в каких ДНС, поэтому либо напрямую IP указывать, либо в Hosts прописать, о чем они и пишут в своей краткой инструкции, и вообще ничего не ответит на твой IP, ибо надо послать сначала запрос в ЧЗ, чтобы тебя подключили к этому стенду, указав свой IP, то есть его надо зафиксировать сначала у себя, а потом недели через 2, может, ЧЗ и подключит. А до этого будет тупо молчать. Но ТС пишет, что получил токен (это делается по http-протоколу). А вот по Https -не получается.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886390
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov
sql2012,
185.196.171.27
Но он, во-первых, не прописан ни в каких ДНС, поэтому либо напрямую IP указывать, либо в Hosts прописать, о чем они и пишут в своей краткой инструкции, и вообще ничего не ответит на твой IP, ибо надо послать сначала запрос в ЧЗ, чтобы тебя подключили к этому стенду, указав свой IP, то есть его надо зафиксировать сначала у себя, а потом недели через 2, может, ЧЗ и подключит. А до этого будет тупо молчать. Но ТС пишет, что получил токен (это делается по http-протоколу). А вот по Https -не получается.


уже понял, что там ... такое... не публичное
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886400
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,
вот еще по настройкам:

3.5. Установка защищенного соединения к API по TLS (https)
Обратить внимание: Если Участник, к которому относится пользователь, Резидент, то после процедур аутентификации и авторизации все методы API должны вызываться с ипользованием HTTPS протокола. Для взаимодействия по https используется ГОСТ Р 34.10-2012 сертификат.
Перед установкой соединения необходимо выполнить следующие настройки:
1) Общие настройки
 в операционной системе Windows (7, 10) добавить запись DisableClientExtendedMasterSecret (dword) в реестре HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
со значением 1 (т.к. Windows по-умолчанию блокирует подобные соединения)
2) Настройки для Продуктивного контура
 адрес API
http://api.mdlp.crpt.ru
https://api.mdlp.crpt.ru
 Обратите внимание: для взаимодействия по https используется ГОСТ сертификат от Крипто-Про. Сертификаты Головного удостоверяющего центра можно скачать по ссылкам
http://api.mdlp.crpt.ru/static/minkomsvyaz.cer
http://api.mdlp.crpt.ru/static/cryptopro.cer
3) Настройки для Тестового стенда API
 добавить в хранилище доверенных сертификатов тестовый корневой сертификат от КриптоПро. Ссылка для загрузки
http://testca.cryptopro.ru/certsrv/certcarc.asp
 в файл hosts должна быть добавлена запись
185.196.171.27 api.stage.mdlp.crpt.ru
4) Точки доступа для тестового стенда Песочница:
32
http://api.sb.mdlp.crpt.ru https://api.sb.mdlp.crpt.ru
 добавить в хранилище доверенных сертификатов тестовый корневой сертификат от КриптоПро. Ссылка для загрузки
http://testca.cryptopro.ru/certsrv/certcarc.asp

это из файла "API протокол обмена интерфейсного уровня" с сайта ЧЗ.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886408
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,
И что вообще там в файле 'C:\doc.txt'? :) Может для начала попробовать что-то вроде documents/income? В send можно подать ему такой фильтр: '{"filter":{},"start_from":0,"count":100}'
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886423
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

Ужас какой... А стандартные функции не подойдут? К тому же где вы устанавливаете HTTPS?

Примерно так:

WinHttpOpen
WinHttpConnect + INTERNET_DEFAULT_HTTPS_PORT
WinHttpOpenRequest + WINHTTP_FLAG_SECURE
WinHttpSetOption + нужные флаги
и т.д.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886432
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну или импортируйте tlb и получите WinHttp_TLB
с норм методами, свойствами и вызовами...

Microsoft WinHTTP Services, version 5.1, C:\Windows\system32\winhttp.dll, {662901FC-6951-4854-9EB2-D9A2570F2B2E}
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886436
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Cite,
Что это за стандартные функции такие? WinHttpOpen? Или у меня Delphi XE устарел?
Что OLE, что через TLB - без разницы, работать должно.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886490
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov,

Winapi.WinHTTP

Если нету, то самому описать функции отсюда https://docs.microsoft.com/en-us/windows/win32/api/winhttp/
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886494
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Cite,
А, понял, спасибо. В XE этого нет.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886584
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql2012
если внутри dll будет вызов СКЗИ с ГОСТ - да
речь о допиленных длл опен ссл ? а со стандартными никак ?
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886641
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer
sql2012
если внутри dll будет вызов СКЗИ с ГОСТ - да
речь о допиленных длл опен ссл ? а со стандартными никак ?


а стандартные это какие?
в которых нет реализации ГОСТ-а?



OpenSSL + ГОСТ (gostengy и gost_capi) - Использование КриптоПро CSP в OpenSSL: apache, nginx etc
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886660
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за помощь, пока в прострации, https упорно не работает. Попробовал TScHttpWebRequest от Devart - также с http работает , с https - нет, вылазит the other side has sent a failure alert [40] (см. скрин), как я понимаю обрубается все еще на уровне handshake. Видимо потому что ГОСТа нет в списке его алгоритмов (см. скрин)?
остальными настройками игрался - ставлил все что можно из свойств ignore в true - не помогает. Еще вопрос - вот я все протоколы сделал true (см. скрин) - так можно или надо какой-то один выбрать?
Код:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
var
  Request: TScHttpWebRequest;
  Response: TScHttpWebResponse;
  ResponseStr: string;
  Buf: TBytes;
  AURL: string;
  APOSTData: WideString;
begin
  AURL := 'https://api.stage.mdlp.crpt.ru/api/v1/documents/income';
  try
    Request := TScHttpWebRequest.Create(AURL);
    Response := TScHttpWebResponse.Create;
    APOSTData :='{"filter":{},"start_from":0,"count":100'+'}';
    Buf :=  StringToBytes(APOSTData);
    Request.ContentType := 'application/json';
    Request.Headers.Add('Authorization', 'token 5ca8e99b-c11a-406d-adec-90813dcea5d2');
    Request.ContentLength := Length(Buf);
    Request.WriteBuffer(Buf);
    Response := Request.GetResponse;
  finally
    showMessage(Response.ReadAsString);
    Request.Free;
    Response.Free;
end;



Что касается WinHTTP и настроек для ЧЗ
3) Настройки для Тестового стенда API
 добавить в хранилище доверенных сертификатов тестовый корневой сертификат от КриптоПро. Ссылка для загрузки
http://testca.cryptopro.ru/certsrv/certcarc.asp
 в файл hosts должна быть добавлена запись
185.196.171.27 api.stage.mdlp.crpt.ru


Настройки все были сделаны изначально как в инструкции. Если URL в WinHTTP меняешь с https на http
к примеру http://api.stage.mdlp.crpt.ru/api/v1/documents/income - работает (хотя и выдает ошибку, н озапрос обрабатывается)
иначе ошибка как вчера. Тут все же как я понимаю ошибка в настройках самого компонента, так как от сервера от ничего не успевает просто получить. То что советовали WinHttp_TLB и прочее - пока не пробовал
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886665
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще хотел попробовать chromium, чтобы затестить, работает ли вообще https в тестовом контуре, но вот такая ошибка вылазит.
Что делаю не так? Или он только для 64-разрядной винды предназначен? Ссылок на виндовую версию всего 2, по разрядности не подразделяются
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886670
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

1. КриптоПРО CSP - какая сборка?
2. В IE ГОСТ-TLS работает?
3. Что касается WinHTTP = ранее давал для самопроверки URL - https://cpca.cryptopro.ru - его IE открывает? Также и WinHTTP может запросить для проверки ГОСТ-а. У меня работает (через COM, как у тебя).
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886678
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql2012, см. скрин
TLS в IE вроде подключен, а как узнать насчет ГОСТа, я в этом вообще не шарю, если честно.
При открытии https://cpca.cryptopro.ru в IE сначала ошибка сертификата, но если игнорить ее, то открывается
Версия Crypro Pro CSP получается 5.0.11455
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886762
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,
Значит работает.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886771
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql2012, а как chromium то поставить, не подскажете? Я вижу только эти ссылки для скачивания дистриба (скрин), с обоими виндовыми у меня вылазит ошибка как в предыдущих постах. Он только на 64 битке работает? Или что мне надо сделать чтобы он установился?
Самому компилить код что ли?
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886806
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

installer или zip,
zip использую.

У меня 64х.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886820
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

заходи и качай Win32 на выбор
https://update.cryptopro.ru/chromium-gost/archives/
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886825
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,
Попробуйте зарегистрироваться в песочнице. В этом случае сможете сравнить мои результаты со своими. В тестовом модуле не вижу никакого смысла возиться. Всё, что надо, отлаживается в песочнице плюс не надо создавать себе контрагентов, они там все присутствуют. Отличается от рабочего модуля только тем, что это тестовый сервер. К тому, не будет ограничения по IP, можно из дома работать, если есть УКЭП и Крипто-про. Я работаю под УКЭП реальной аптеки, но вот с одним разработчиком обмениваемся данными через песочницу, так у него вижу УКЭП тестовый, значит можно и его зарегистрировать. Надо просто оформить заявку в ЧЗ.

Зарегистрируйтесь на форуме ЧЗ, там Вам, скорее всего, быстро ответят, работает ли кто-нибудь с тестовым стендом API, или все в песочнице сидят, и какие там будут подводные камни.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886847
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X-Cite, sql2012, V.Borzov
Огромное спасибо за помощь. Вроде бы https взлетел с IWinHttpRequest.
По крайней мере стал приходит ответ от сервака (скрин). Но опять таки неясно почему так? Все права вроде бы есть, по крайней мере
ЧЗ авторизовал на тестовом стенде и все права я себе назначил как в инструкции.
V.Borzov сталкивались с таким? Как побороть?
И еще вопрос по песочнице - как проверить, может нам уже дали доступ, просто попробовать авторизоваться?
Весь алгоритм такой же как с тестовым стендом, другой IP не надо в hosts прописывать как я понимаю?
Возможно мы уже авторизованы в песочнице, потому что когда запрашивал доступ к тестовому стенду, техподдержка ЧЗ сначала ответила что дали доступ к песочнице
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886861
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010
X-Cite, sql2012, V.Borzov
ЧЗ авторизовал на тестовом стенде и все права я себе назначил как в инструкции.
V.Borzov сталкивались с таким? Как побороть?

Я в тестовый стенд пока получал доступ, освоился в песочнице, а там права у юзера полные, поэтому с правами не заморачивался. Возможно, придется, когда надо будет создавать дополнительных пользователей.
И еще вопрос по песочнице - как проверить, может нам уже дали доступ, просто попробовать авторизоваться?

Ну да. Там еще есть кнопка "проверить статус регистрации"
Весь алгоритм такой же как с тестовым стендом, другой IP не надо в hosts прописывать как я понимаю?
Возможно мы уже авторизованы в песочнице, потому что когда запрашивал доступ к тестовому стенду, техподдержка ЧЗ сначала ответила что дали доступ к песочнице
В песочницу мы входим с уже готовым УКЭП, ничего руками создавать не надо нам. Надо лишь создать адреса своей деятельности самостоятельно (адреса торговых точек), по списку доступных. Поставщики или другие аптечники, кто зарегистрировался там, уже все видны, и с ними можно взаимодействовать, как будто это рабочий контур.

Далее Вам целесообразно перейти в форум ЧЗ, думаю.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886894
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov, еще раз огромное спасибо, очень выручаете!
Подскажите пожалуйста адрес форума ЧЗ - не могу найти
И еще по Песочнице ответьте пожалуйста! Где там кнопка "проверить регистрацию", в упор не вижу такую!
Директор наш уде давно зарегился в Песочнице и заходит туда по УКЭП со своего компа - то есть уже могу работать с песочницей, так ведт получается, мне отдельно там региться не надо ведь? Просто с его компа получается надо будет его сертификат перенести на мой, чтобы смог работать, так?
Он мне дал Идентификатор вида 0eaafe69-cabb-40ee-b502-fcc2e3761490 - который как я понял он получил от ЧЗ
Только не могу понять - это sys_id, user_id, client_id или code получается?
В Песочнице в отличие от тестового стенда везде нужен token, вообще везде, даже для регистрации
Смотрю в инструкции как его получить

Запрос:
POST api/v1/token HTTP/1.1
Host: api.sb.mdlp.crpt.ru
Content-Type: application/json
Cache-Control: no-cache
{
"code": "acf5c2c8-6d2c-41e5-ae75-6f98d3123d36"
"password" : "password123"
}
Получение результата:
{
"token": "64193f26-8564-49c1-b1f4-4d84880ebaa7",
"life_time": 30
}

То есть нужен code и password
То есть изначально как минимум code нам должен сообщить сам Честный знак при регистрации, так ведь получается? Иначе мы сами то никак не можем его сгенерить? Но вот пытаюсь этот запрос выполнить в Rest Client-е в браузере, в качестве code беру то, что дал диреткор. Но выдает ошибку
{
"error_description": "Ошибка при выполнении операции: поле code введено некорректно"
}
Что совсем запутался. Откуда брать то исходную инфу чтобы начать работать в песочнице? Что-то нужно получить от ЧЗ или нет?
В тестовом как оказалось не нужно было, а тут похоже что как минимум code или sys_id нужно?
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886913
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010
Подскажите пожалуйста адрес форума ЧЗ - не могу найти

http://честныйзнак.рф/forum
И еще по Песочнице ответьте пожалуйста! Где там кнопка "проверить регистрацию", в упор не вижу такую!

http://sb.mdlp.crpt.ru под большой желтой кнопкой "войти через УКЭП". Да и кнопку-то саму нажмите, может уже есть заход.

Директор наш уде давно зарегился в Песочнице и заходит туда по УКЭП со своего компа - то есть уже могу работать с песочницей, так ведь получается, мне отдельно там региться не надо ведь? Просто с его компа получается надо будет его сертификат перенести на мой, чтобы смог работать, так?

Да, под его учеткой, также крипто-про нужен. Для начала можно поставить, не покупая, там 3 месяца, кажется.
Он мне дал Идентификатор вида 0eaafe69-cabb-40ee-b502-fcc2e3761490 - который как я понял он получил от ЧЗ
Только не могу понять - это sys_id, user_id, client_id или code получается?

В качестве USER_ID будете использовать либо ID сертификата, либо его отпечаток, в качестве CLIENT_ID и CLIENT_SECRET - идентификатор клиента и секретный код учетной системы, которую Вы сами создадите там в личном кабинете в настройках. Ими будете получать токен, которым будете работать.

На форуме ЧЗ это всё бурно обсуждается сейчас. Вам срочно туда!
В Песочнице в отличие от тестового стенда везде нужен token, вообще везде, даже для регистрации
Смотрю в инструкции как его получить

Запрос:
POST api/v1/token HTTP/1.1
Host: api.sb.mdlp.crpt.ru
Content-Type: application/json
Cache-Control: no-cache
{
"code": "acf5c2c8-6d2c-41e5-ae75-6f98d3123d36"
"password" : "password123"
}
Получение результата:
{
"token": "64193f26-8564-49c1-b1f4-4d84880ebaa7",
"life_time": 30
}

То есть нужен code и password

То есть изначально как минимум code нам должен сообщить сам Честный знак при регистрации, так ведь получается? Иначе мы сами то никак не можем его сгенерить? Но вот пытаюсь этот запрос выполнить в Rest Client-е в браузере, в качестве code беру то, что дал диреткор. Но выдает ошибку
{
"error_description": "Ошибка при выполнении операции: поле code введено некорректно"
}



Нет, для резидентов рф пароль не используется. Используется цифровая подпись. Вам надо будет освоить подписание файлов.

В двух словах: обращаетесь через auth, методом Post отправив туда свои client_id,client_secret,user_id, получаете в ответ code. далее этот code надо подписать своей цифровой подписью (открепленной) и послать (она зарегистрирована в ЧЗ), и ЧЗ, если всё верно, выдает этот token вида UUID, которым можно пользоваться полчаса, используя его во всех общениях с сервером. И будем дальше использовать уже Https, до этого всё было по http
Что совсем запутался. Откуда брать то исходную инфу чтобы начать работать в песочнице? Что-то нужно получить от ЧЗ или нет?
В тестовом как оказалось не нужно было, а тут похоже что как минимум code или sys_id нужно?
Я попросил клиента (аптеку), чтобы она пообщалась с поставщиками. Один из поставщиков прислал мне штук 30 кодов, и понеслось. Далее либо между своими ООО, если имеются, кидаете туда-сюда данные, либо с кем-то из поставщиков, или кто там у вас, покупатели, либо скарифанитесь на форуме ЧЗ с кем-то и взаимодействуете.

https://Честныйзнак.рф/business/projects/medicines/ - там раздел "документы для работы с МДЛП", всё подряд скачивать и читать от корки до корки.



Удачи! Судя по всему, Вам еще много предстоит в изучении, так что начинайте делать это как можно быстрее! Времени мало.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886914
Фотография devart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010
Всем спасибо за помощь, пока в прострации, https упорно не работает. Попробовал TScHttpWebRequest от Devart - также с http работает , с https - нет, вылазит the other side has sent a failure alert [40] (см. скрин), как я понимаю обрубается все еще на уровне handshake. Видимо потому что ГОСТа нет в списке его алгоритмов (см. скрин)?
остальными настройками игрался - ставлил все что можно из свойств ignore в true - не помогает. Еще вопрос - вот я все протоколы сделал true (см. скрин) - так можно или надо какой-то один выбрать?
Код:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
var
  Request: TScHttpWebRequest;
  Response: TScHttpWebResponse;
  ResponseStr: string;
  Buf: TBytes;
  AURL: string;
  APOSTData: WideString;
begin
  AURL := 'https://api.stage.mdlp.crpt.ru/api/v1/documents/income';
  try
    Request := TScHttpWebRequest.Create(AURL);
    Response := TScHttpWebResponse.Create;
    APOSTData :='{"filter":{},"start_from":0,"count":100'+'}';
    Buf :=  StringToBytes(APOSTData);
    Request.ContentType := 'application/json';
    Request.Headers.Add('Authorization', 'token 5ca8e99b-c11a-406d-adec-90813dcea5d2');
    Request.ContentLength := Length(Buf);
    Request.WriteBuffer(Buf);
    Response := Request.GetResponse;
  finally
    showMessage(Response.ReadAsString);
    Request.Free;
    Response.Free;
end;



Что касается WinHTTP и настроек для ЧЗ
3) Настройки для Тестового стенда API
 добавить в хранилище доверенных сертификатов тестовый корневой сертификат от КриптоПро. Ссылка для загрузки
http://testca.cryptopro.ru/certsrv/certcarc.asp
 в файл hosts должна быть добавлена запись
185.196.171.27 api.stage.mdlp.crpt.ru


Настройки все были сделаны изначально как в инструкции. Если URL в WinHTTP меняешь с https на http
к примеру http://api.stage.mdlp.crpt.ru/api/v1/documents/income - работает (хотя и выдает ошибку, н озапрос обрабатывается)
иначе ошибка как вчера. Тут все же как я понимаю ошибка в настройках самого компонента, так как от сервера от ничего не успевает просто получить. То что советовали WinHttp_TLB и прочее - пока не пробовал

Если сервер поддерживает только ГОСТ алгоритм, то вы не сможете подключиться к данному серверу, так как на данный момент SecureBridge не поддерживает данный алгоритм.
В свойстве Protocols перечисляется список поддерживаемых клиентом прикладных протоколов. Сервер сам выбирает протокол который будет использовать, поэтому если в списке не будет протокола поддерживаемого сервером, вы не сможете работать с таким сервером.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39886915
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov, благодарствую, реально очень помогли! Да, надо было давно начинать все это дело, сам виноват. Все время ещё отвлекают текущими проблемами, приходится в перерывах все это выяснять. Ещё если честно, до после днего была надежда, что все это отложат как с онлайн кассами на год или более, но похоже все таки хотят запускать.
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39887598
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наконец удалось отправить тестовый док по https в песочнице. V.Borzov и кто работает с МДЛП подскажите пожалуйста дальше:
1. Как вы реализуете программно подписание дока сертификатом? Работаете напрямую с Crypto Pro или запускаете bat-ник как в примере ЧЗ?
авторcsptest -sfsign -sign -in <УКАЗАТЬ ПОЛНЫЙ ПУТЬ К ФАЙЛУ>doc.txt -out <УКАЗАТЬ ПОЛНЫЙ ПУТЬ К ФАЙЛУ>signed_doc.txt -my "АО Фурацилин" -detached -base64 –add
Какими инструментами это можно реализовать в Delphi (2007)?

2. Как делаете вот это
авторПеревести тело документа в Base64
Для примера я естественно взял пример из инструкции как выглядит doc.xml в Base64
авторPGRvY3VtZW50cyB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB2ZXJzaW9uPSIxLjE5Ij48cmVnaXN0ZXJfZW5kX3BhY2tpbmcgYWN0aW9uX2lkPSIzMTEiPjxzdWJqZWN0X2lkPjAwMDAwMDAwMDAwNTE3PC9zdWJqZWN0X2lkPg==

Но каков алгоритм перевода, где можно почитать? В доках ЧЗ не нашел объяснение, а на форуме меня пока не авторизовали (что само по себе капец, что там надо еще авторизоваться!). Хотя может и не капец. Когда внедряли онлайн-кассы на форуме штрих-м меня тоже так и не авторизовали, несмотря на неоднократные запросы
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39887692
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39887694
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

Подписывание - для начала и csptest.exe подойдет. Дальше можно изучить CAPICOM, там тоже всё просто.
Далее, если очень захочется, то можно обратиться напрямую к CryptoApi, найти к нему описание на паскале, например JwaWinCrypt.pas.

По Base64: https://ru.wikipedia.org/wiki/Base64
в Delphi можно воспользоваться стандартным модулем EncdDecd (в XE он есть).
...
Рейтинг: 0 / 0
Delphi Rest Client + SSL
    #39898899
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov
Времени мало.


вот и меня цейтнот сей настиг
послежу за темой
...
Рейтинг: 0 / 0
59 сообщений из 59, показаны все 3 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Rest Client + SSL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]