|
|
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 17:25 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010, какой IP у api.stage.mdlp.crpt.ru ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 17:39 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010, арт2010, А в какой момент вылетает ошибка? После какой операции? Я подумал сначала, что дело в асинхронном выводе, и при нем надо сделать Send, а потом выполнять HTTP.WaitForResponse(10) (то есть 10 секунд ждем ответа). Если функция вернула false, то это как раз означает, что данные еще не готовы, функция еще выполняется, надо ждать далее. И далее либо снова запускаем WaitForResponse(сек) и ждем, пока true в ответ не получим, либо уходим, решив, что ждать бесполезно. Но для асинхронной работы надо, чтобы в Open второй вариант был = 1 (или true), у тебя же 0 стоит. Значит функция Send должна выполнить запрос и вернуть готовый результат. И вообще я так и не добрался до тестового стенда, меня не пускало, а техподдержка ответ если и дала той фирме, которая делала запрос на стенд (их IP фиксированный был указан в заявке), то очень поздно. Потому работаю с песочницей, там ограничений по IP никаких нет, к тому же там присутствуют другие участники, можно с ними данными общаться. Может это сам тестовый стенд мозги компостирует. И в тестовом стенде один будешь сидеть изолированно, сам себе создавать участников и от них создавать для себя же данных. Удобнее, когда они есть. Спросил знакомого поставщика, он тебе выделил SGTINы, приходуешь. Вообще обязательно зарегистрируйся в форуме ЧЗ, там сейчас активность резко возросла. Темы подключения тоже обсуждаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 17:54 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт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 серверами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 17:55 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
sql2012, 185.196.171.27 Но он, во-первых, не прописан ни в каких ДНС, поэтому либо напрямую IP указывать, либо в Hosts прописать, о чем они и пишут в своей краткой инструкции, и вообще ничего не ответит на твой IP, ибо надо послать сначала запрос в ЧЗ, чтобы тебя подключили к этому стенду, указав свой IP, то есть его надо зафиксировать сначала у себя, а потом недели через 2, может, ЧЗ и подключит. А до этого будет тупо молчать. Но ТС пишет, что получил токен (это делается по http-протоколу). А вот по Https -не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 18:00 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
V.Borzov sql2012, 185.196.171.27 Но он, во-первых, не прописан ни в каких ДНС, поэтому либо напрямую IP указывать, либо в Hosts прописать, о чем они и пишут в своей краткой инструкции, и вообще ничего не ответит на твой IP, ибо надо послать сначала запрос в ЧЗ, чтобы тебя подключили к этому стенду, указав свой IP, то есть его надо зафиксировать сначала у себя, а потом недели через 2, может, ЧЗ и подключит. А до этого будет тупо молчать. Но ТС пишет, что получил токен (это делается по http-протоколу). А вот по Https -не получается. уже понял, что там ... такое... не публичное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 18:02 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт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 протокол обмена интерфейсного уровня" с сайта ЧЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 18:08 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010, И что вообще там в файле 'C:\doc.txt'? :) Может для начала попробовать что-то вроде documents/income? В send можно подать ему такой фильтр: '{"filter":{},"start_from":0,"count":100}' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 18:11 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010, Ужас какой... А стандартные функции не подойдут? К тому же где вы устанавливаете HTTPS? Примерно так: WinHttpOpen WinHttpConnect + INTERNET_DEFAULT_HTTPS_PORT WinHttpOpenRequest + WINHTTP_FLAG_SECURE WinHttpSetOption + нужные флаги и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 18:33 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
ну или импортируйте tlb и получите WinHttp_TLB с норм методами, свойствами и вызовами... Microsoft WinHTTP Services, version 5.1, C:\Windows\system32\winhttp.dll, {662901FC-6951-4854-9EB2-D9A2570F2B2E} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 18:38 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
X-Cite, Что это за стандартные функции такие? WinHttpOpen? Или у меня Delphi XE устарел? Что OLE, что через TLB - без разницы, работать должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 18:43 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
V.Borzov, Winapi.WinHTTP Если нету, то самому описать функции отсюда https://docs.microsoft.com/en-us/windows/win32/api/winhttp/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 20:43 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
X-Cite, А, понял, спасибо. В XE этого нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 20:57 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
sql2012 если внутри dll будет вызов СКЗИ с ГОСТ - да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 08:44 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
Ghost Writer sql2012 если внутри dll будет вызов СКЗИ с ГОСТ - да а стандартные это какие? в которых нет реализации ГОСТ-а? OpenSSL + ГОСТ (gostengy и gost_capi) - Использование КриптоПро CSP в OpenSSL: apache, nginx etc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 10:51 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за помощь, пока в прострации, 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. Что касается 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 и прочее - пока не пробовал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 11:19 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
Еще хотел попробовать chromium, чтобы затестить, работает ли вообще https в тестовом контуре, но вот такая ошибка вылазит. Что делаю не так? Или он только для 64-разрядной винды предназначен? Ссылок на виндовую версию всего 2, по разрядности не подразделяются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 11:26 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010, 1. КриптоПРО CSP - какая сборка? 2. В IE ГОСТ-TLS работает? 3. Что касается WinHTTP = ранее давал для самопроверки URL - https://cpca.cryptopro.ru - его IE открывает? Также и WinHTTP может запросить для проверки ГОСТ-а. У меня работает (через COM, как у тебя). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 11:33 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
sql2012, см. скрин TLS в IE вроде подключен, а как узнать насчет ГОСТа, я в этом вообще не шарю, если честно. При открытии https://cpca.cryptopro.ru в IE сначала ошибка сертификата, но если игнорить ее, то открывается Версия Crypro Pro CSP получается 5.0.11455 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 11:44 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010, Значит работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 13:36 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
sql2012, а как chromium то поставить, не подскажете? Я вижу только эти ссылки для скачивания дистриба (скрин), с обоими виндовыми у меня вылазит ошибка как в предыдущих постах. Он только на 64 битке работает? Или что мне надо сделать чтобы он установился? Самому компилить код что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 13:51 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010, installer или zip, zip использую. У меня 64х. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 14:50 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010, Попробуйте зарегистрироваться в песочнице. В этом случае сможете сравнить мои результаты со своими. В тестовом модуле не вижу никакого смысла возиться. Всё, что надо, отлаживается в песочнице плюс не надо создавать себе контрагентов, они там все присутствуют. Отличается от рабочего модуля только тем, что это тестовый сервер. К тому, не будет ограничения по IP, можно из дома работать, если есть УКЭП и Крипто-про. Я работаю под УКЭП реальной аптеки, но вот с одним разработчиком обмениваемся данными через песочницу, так у него вижу УКЭП тестовый, значит можно и его зарегистрировать. Надо просто оформить заявку в ЧЗ. Зарегистрируйтесь на форуме ЧЗ, там Вам, скорее всего, быстро ответят, работает ли кто-нибудь с тестовым стендом API, или все в песочнице сидят, и какие там будут подводные камни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 15:24 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
X-Cite, sql2012, V.Borzov Огромное спасибо за помощь. Вроде бы https взлетел с IWinHttpRequest. По крайней мере стал приходит ответ от сервака (скрин). Но опять таки неясно почему так? Все права вроде бы есть, по крайней мере ЧЗ авторизовал на тестовом стенде и все права я себе назначил как в инструкции. V.Borzov сталкивались с таким? Как побороть? И еще вопрос по песочнице - как проверить, может нам уже дали доступ, просто попробовать авторизоваться? Весь алгоритм такой же как с тестовым стендом, другой IP не надо в hosts прописывать как я понимаю? Возможно мы уже авторизованы в песочнице, потому что когда запрашивал доступ к тестовому стенду, техподдержка ЧЗ сначала ответила что дали доступ к песочнице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2019, 16:11 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39886363&tid=2038796]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
148ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 457ms |

| 0 / 0 |
