|
|
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
Всем привет, возникла проблема 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? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2019, 09:28 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
1. Indy вполне себе живой 2. Версия под D7 никак не отличается от версии под 2007. 3. Можно также попробовать ICS, там есть компоненты для REST ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2019, 09:55 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010, у сервера https://api.sb.mdlp.crpt.ru/ - GOST R 34.10-2012 512, сертификат выдан тестовым УЦ. Варианты: WinInet.dll WinHTTP.dll Сборка OpenSSL с ГОСТ-ом, которую получится использовать в Delphi 2007 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2019, 10:03 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010 Со сторонним Rest Clientтоже не срослось. Нашел вот такой https://github.com/fabriciocolombo/delphi-rest-client-api Но как назло у него нет версии под D2007, только D7 или D2010 в описании вижу: restclient.ConnectionType := hctWinINet; Должно помочь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2019, 10:05 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
Ок, всем спасибо за подсказки, попробую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2019, 10:16 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
Продолжение марлезонского балета. Из клиентов остановился на 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2019, 17:02 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
Если приходит 500. Смотртте логи на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2019, 19:06 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
Как я их могу посмотреть, они ж на сервере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2019, 19:49 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010 Как я их могу посмотреть, они ж на сервере Да не приходит у тебя 500, успокойся, смотри на уровень ниже, от сокета... код и текст ошибку) ну или попробуй в IE открыть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2019, 20:15 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт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. Используй: 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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2019, 20:20 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010 Продолжение марлезонского балета. Из клиентов остановился на synapse (с остальным - Indy, Delphi Rest Api и прочее - не срослось), вроде наладил работу с http, но с https возникла затычка Выдает внутреннюю ошибку сервера (500), в result получаю целиком body, которое отправляю в ЧЗ Как думаете, в чем может быть загвоздка? Напомни мне еще раз, по https у ЧЗ - ГОСТ? Если Да - то почему игнорируешь сообщение выше про WinInet и остановился на synapse? Или можешь из synapse работать с ГОСТ-ом? Для "самопроверки" - https://cpca.cryptopro.ru/ synapse - Sock [10061 : Connection refused] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2019, 20:48 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
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. 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2019, 21:52 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010, 400 - Bad Request (Неправильный запрос). Сниффер в руки и смотри, что он отправляет, сверяй с тем, что тебе предоставили в другой ветке для примера. Indy...? Что использует для https, опять те же dll, что и synapse? WinInet\WinHTTP - через них путь для TLS с ГОСТ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2019, 22:13 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
sql2012, спасибо за помощь! буду пытаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2019, 22:14 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
Я через WinhttpRequest подключился к МДЛП, идет на ура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 02:23 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
V.Borzov, можете пример кода привести? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 08:38 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
В самом крайнем случае можно сетевой обмен реализовать через DLL, в которую запихнуть либо http клиент из новых версий (основан на WinHTTP), либо вообще подключить curl. Но вообще WinInet в плане http запросов очень простой, буквально одна функция для простого get. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 09:46 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
А в совсем крайних случаях говорят помогает пустить шифрованный трафик через stunnel: https://www.cryptopro.ru/products/other/stunnel-msspi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 10:52 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
арт2010 V.Borzov, можете пример кода привести? Вот пример в фастскрипте (авторизация пройдена, токен уже получен): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Перед этим было получение токена: обращение по http (можно и в synapse даже это сделать), получение кода для подписание, потом само подписания, отправка кода и получение токена. Дальше идет подключение по https, приведённое в примере. Я тоже воткнулся в ошибку 500 в synapse и отложил пока это всё, заинтересовавшись Winhttp, которому и OpenSSL не потребовался. Для получения запросов рекомендую всё-таки обращаться не к WinHttp.ResponseText, ибо он взбрыкнёт с кодировкой рано или поздно, а использовать WinHTTP.ResponseStream. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 12:13 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
Попробуйте в файрфокс поставить расширение RESTClient и отсылать запрос через него, заодно и полные ответы сервера увидите. Мне не так давно сильно помогло. После этого использовал indy для d7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 13:00 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
yooo Попробуйте в файрфокс поставить расширение RESTClient и отсылать запрос через него, заодно и полные ответы сервера увидите. Мне не так давно сильно помогло. После этого использовал indy для d7. и работать по http? а если https по гост? как-то странно, всё обходят стороной.. Или Я ошибаюсь и там нет никакого ГОСТ-а в TLS, на продуктивном сервере? p.s. // не имею никакого отношения к ЧЗ, просто глянул описания и на форумах - ссылки на API - а там https по ГОСТ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 14:08 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
V.Borzov Я тоже воткнулся в ошибку 500 в synapse и отложил пока это всё, заинтересовавшись Winhttp, которому и OpenSSL не потребовался. написан он так... когда со своими сервисами словил - выяснил, что никуда запрос и не уходил и сервис не давал 500 код... нужно на сокетную ошибку еще смотреть - пример приводил выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 14:16 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
sql2012 написан он так... когда со своими сервисами словил - выяснил, что никуда запрос и не уходил и сервис не давал 500 код... Было ещё наблюдение какой-то проблемы с "Authorization token ТОКЕН", но дальше не полез, забросил. То есть synapse там что-то пытался подменить своими данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 14:23 |
|
||
|
Delphi Rest Client + SSL
|
|||
|---|---|---|---|
|
#18+
sql2012 Или можешь из synapse работать с ГОСТ-ом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2019, 15:47 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39886060&tid=2038796]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
131ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 427ms |

| 0 / 0 |
