Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2022, 17:39   #1
Fox78
Пользователь
 
Регистрация: 17.03.2017
Сообщений: 28
По умолчанию Ошибка :ssl3_read_bytes:tlsv1 alert protocol version

Всем привет!
Прога общается с сервером по api по https.
Она была написана около 3-х лет назад. Работала исправно до сегодняшнего дня.
Писалась на Delphi 10.2.
Используется компонент IdHTTP.

При выполнении idhttp1.Post возвращает ошибку:
Error connecting with SSL.
error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version.

Так понимаю, что сервер теперь использует протокол другой версии...

Качаю более свежие библиотеки libeay32.dll и ssleay32.dll, не помогает
Либо не то качаю, либо не то делаю.
Помогите разобраться?
Fox78 вне форума Ответить с цитированием
Старый 15.04.2022, 10:53   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

В TIdSSLIOHandlerSocketOpenSSL смените устаревший протокол на посовременнее, типа sslvTLSv1_2.
ForenLi вне форума Ответить с цитированием
Старый 14.07.2022, 17:26   #3
astzart
Новичок
Джуниор
 
Регистрация: 14.07.2022
Сообщений: 1
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
В TIdSSLIOHandlerSocketOpenSSL смените устаревший протокол на посовременнее, типа sslvTLSv1_2.
Спасибо за совет - мне тоже помогло. Работал ранее с https и не ведал проблем, однако сайт 2gis.com отказался воспринимать версию TLSv1 как очень устаревшую и прочее.
А вот понадобилось геопозицию по адресу вычислять.
На Indy моя процедура запроса с установкой версии выглядит приблизительно таким образом:

Код:
procedure ...
var
  IdHTTP: TIdHTTP;
  S, ResStr: string;
  _addr: string;
  Obj: ISuperObject;
  IOHandler: TIdIOHandler;
begin
      SSLPrepareDLL; // <-- разворачивает при небходимости  libeay32.dll и ssleay32.dll
      try
        IdHTTP := TIdHTTP.Create(nil);
        try
          IOHandler := TIdIOHandler.TryMakeIOHandler(TIdSSLIOHandlerSocketBase, IdHTTP);
          IOHandler.OnStatus := IdHTTP.OnStatus; // <-- возможно, лишнее 
          TIdSSLIOHandlerSocketOpenSSL(IOHandler).SSLOptions.Method := sslvTLSv1_2; // <-- переключаем метод
          IdHTTP.IOHandler := IOHandler;
          try
            S := Format(
              'https://catalog.api.2gis.com/3.0/items/geocode?q=%s&fields=items.point&key=' + KeyObj.IdKeyGlobal, [
              _addr
            ]);
            ResStr := IdHTTP.Get(S);
            Obj := SO(ResStr);
            isoResponse := Obj;
          finally
            IOHandler.Free;
          end;
        finally
          IdHTTP.Free;
        end;
      except
        on E: EIdHTTPProtocolException do
          raise
            Exception.Create(E.ErrorMessage);
      end;
end;

Последний раз редактировалось astzart; 14.07.2022 в 17:38.
astzart вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Security Alert VMWare - чо за ошибка? Кто сталкивался? iskurt Общие вопросы Delphi 4 18.08.2022 15:02
Ошибка на Опенкарт Version 2.3.0.2 Ляна2019 Помощь студентам 0 19.04.2019 13:48
TdTCPClient как подключится к серверу при помощи TLSv1? DonniGood Работа с сетью в Delphi 8 08.01.2014 13:32
Почему ошибка? [DCC Error] main.pas(99): E2250 There is no overloaded version of 'StringReplace' ... TwiX Общие вопросы Delphi 5 19.11.2009 03:25
Ошибка [DCC Fatal Error] Demagog.dpr(10): F2051 Unit StdActns was compiled with a different version of Cl Яр|/||< (^_^) Общие вопросы Delphi 1 23.06.2009 11:42