• 0
long_island

MacOS High Sierra (10.13) OpenSSL

Вопросы

Всем привет. Встал вопрос после обновления MacOS до High Sierra. Ранее для работы приложения через https из коробки работал Indy в RAD Studio 10.0. После обновления MacOS стала появляться ошибка о невозможности подгрузить библиотеку OpenSSL. Понял, что в обновленной MacOS теперь используется LibreSSL и из коробки теперь не работает. Перерыл тонну материала, но вопрос остался не решенным. Надеюсь, что кто - то имеет какие - то догадки в этом направлении.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 ответа на этот вопрос

  • 0

Для работы с https страницами используйте компоненты THttpClient или TNetHttpClient. Там ssl подключать не нужно, работает из коробки. 

Изменено пользователем Alex7wrt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

А THttpClient поддерживает сжатие трафика с помощью GZIP? Если да, то как настроить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

На самом деле в Berlin(10.1) такой проблемы и с Indy не наблюдается. 

55 минут назад, Tumaso сказал:

А THttpClient поддерживает сжатие трафика с помощью GZIP? Если да, то как настроить?

 

Indy точно поддерживает. Хотя и THttpClient должен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Indy поддерживает, мы как раз и используем GZIP, текстовый трафик JSON жмет вообще хорошо. А вот с SSL у Indy есть проблемы, поэтому и смотрим в сторону THttpClient.

От перехода удерживает пока непонятки с поддержкой gzip.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От bossalex
      Недавно компилил приложение на Delphi  FMX Android  при обращении  к серверу https при выполнении Get запроса от компонента TIdHttp запросил библиотеку "Could not load SSL library" используется протокол sslvTLSv1_2 в windows все пашет в андроид нет , накопал что можно подключить библиотеки  libssl.so и  libcrypto.so через  deployment .assets\internal , А вот как в коде дальше их использовать никто примерчик не выложил, хоть и обсуждали на интернет просторах 100 раз, те как прикрутить  к IdSSLIOHandlerSocketOpenSSL1.SSLOptions.CertFile. Если есть у кого код выложите пожалуйста? или скинте по email bossalex@ya.ru
      IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method.sslvTLSv1_2;
      IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode.sslmUnassigned;
       
    • От AliZairov
      Привет. Я сделал macos установку web installer с Delphi Berlin.

      Программа дает .bpl ошибка открытия файла.

    • От notricky
      Собственно зазипованый файл качается, разархивируется и все файлы помещаются в папку.
      Ну а дальше приложение не запускается, хотя:
       - Настройки безопасности настроены на установку из любых мест
       - Встроенный архиватор разархивирует в папку и "из-под" него приложение запускается (до настроек безопасности просто выдавало ошибку "неизвестный автор" и "у вас настроено только на аппстор или известных авторов").
       - Разумеется при деплое приложения работают. Если их просто скопировать на флешку и потом закопировать обратно - тоже работают.
      Следовательно проблема при разархивировании программно. Что-то нужно добавить. Есть понимание что именно? 
      Сам нетривиальный код:
      var z: TZipFile; begin try {$IFDEF MSWINDOWS} RenameFile(ParamStr(0),ExtractFileName(ParamStr(0)) + '.old'); Application.ProcessMessages; {$ENDIF} SetLength(Result, 1); Result[0] := ''; z := TZipFile.Create; z.Open(ZipFile, zmRead); z.ExtractAll(ExtractTo); Result := z.FileNames; finally z.Close; z.Free; end; end; В архив кладу:
       - .app взятый с мака (а по другому никак)
       - .entitlements
       - .DS_Store 
      В надобности последнего я сильно сомневаюсь.
       
    • От Alex7wrt
      На MacOS и iOS вылетает приложение при попытке чтения из ресурса.
      Этот код нормально работает на Windows и Android, а на MacOs и iOS приводит к вылету приложения.
      procedure TForm1.Button1Click(Sender: TObject); var rs: TResourceStream; begin rs:=TResourceStream.Create(0,'png1',PChar(RT_RCDATA)); image1.Bitmap.LoadFromStream(rs); rs.Free; end;
      В чем может быть причина?
    • От Alex7wrt
      Добрый день.
      Пытаюсь запустить приложение на IOS симуляторе. При компиляции выскакивает сообщение:

      При этом на MacOS приложения запускаются нормально.
      В чем может быть проблема?
      Berlin Update 1. XCode 8.1. PAServer 18.0
    • От ivadimos
      Пытаюсь опубликовать приложение в Гугл маркет.
      Присылают ответ на почту.

      OpenSSL
      The vulnerabilities were addressed in OpenSSL 1.02f/1.01r. To confirm your OpenSSL version, you can do a grep search for:
      $ unzip -p YourApp.apk | strings | grep "OpenSSL"
      You can find more information and next steps in this Google Help Center article.
      Но ведь я не использую никакой работы с сетью и т.д, только firedac и sqlite
    • От Равиль Зарипов (ZuBy)
      DeviceInfo - модуль для получения информации о девайсе
      Android || Windows || IOS || MAC OS
        

      Intel планшет

      для Андроида нужно включить разрешения (permission)
      Ссылка на GitHub
    • От Равиль Зарипов (ZuBy)
      Шаблон проекта с кастомным шрифтом FontAwesome
      Намного удобней и менее затратно использовать Шрифт с Иконками, чем заботиться о качестве картинок, скейлах, их хранении и загрузке
      Поэтому давно перешел на шрифты, пару скриншотов (без использования картинок)

      Seattle CustomFont.7z
      Berlin CustomFont(Berlin).zip
       
      WINDOWS/MACOS - установить шрифт в систему
      IOS - в деплой добавить шрифт и с помощью IOS9Fix прописать в .plist следующее:
      ANDROID - в деплой добавить шрифт (Remote Path -> assets\internal) и подключить к проекту измененные файлы FMX.FontGlyphs.Android.pas, FMX.FontGlyphs.pas
    • От long_island
      Всем привет. Перерыл тонну информации, но так и не нашел инфы по интересующему меня вопросу.
      Задача: Обычным запросом(INDY, synapse, не имеет значения) проверить наличие SSL сертификата у сайта, в общем - то подойдет и просто проверка на то, что сертификат не самоподписанный. Но так же имеется конкретный сертификат конкретного сайта(https).
      Заранее благодарен за любую помощь в данном вопросе.
    • От rareMax
      Плоховато знаю особенности интернет протоколов. Необходимо с помощью TidHTTP открыть следующий URL:
      https://oauth.vk.com/authorize?client_id=491792444&scope=offline&redirect_uri=https://oauth.vk.com/blank.html&display=mobile&v=5.28&response_type=token Вылетает ошибка:
       
       
      Код, с помощью которого подключаюсь:
      unit vkAPI.Core.Requests; interface uses System.Classes; Type TRequestMng = Class(TComponent) Private Const VK_MIN_INTERVAL = 1000 / 3 + 1; (* Параметры могут передаваться как методом GET, так и POST. Если вы будете передавать большие данные (больше 2 килобайт), то следует использовать метод POST. *) VK_MAX_GET_LENTHG = 2000; private fisSSL: Boolean; fLastAPIusage: TDateTime; protected function BetwenMS(Now, Old: TDateTime): integer; public constructor Create(AOwner: TComponent); override; Function Get(Const URL: String): String; published property IsSSL: Boolean read fisSSL write fisSSL default False; End; implementation uses vkAPI.Core.Utils, idHTTP, IdSSLOpenSSL, System.SysUtils; { TRequestMng } function TRequestMng.BetwenMS(Now, Old: TDateTime): integer; begin Result := Round((Now - Old) * 24 * 60 * 60 * 1000); end; constructor TRequestMng.Create(AOwner: TComponent); begin inherited Create(AOwner); fisSSL := False; end; function TRequestMng.Get(const URL: String): String; var fHTTP: TIdHTTP; fSSL: TIdSSLIOHandlerSocketOpenSSL; begin fHTTP := TIdHTTP.Create; // if IsSSL then begin fSSL := TIdSSLIOHandlerSocketOpenSSL.Create(fHTTP); fHTTP.IOHandler := fSSL; fHTTP.AllowCookies := True; fHTTP.HandleRedirects := True; end; try if URL.Length > VK_MAX_GET_LENTHG then raise Exception.Create ('Если вы будете передавать большие данные (больше 2 килобайт), то следует использовать метод POST. '); if BetwenMS(Now, fLastAPIusage) < VK_MIN_INTERVAL then begin Sleep(BetwenMS(Now, fLastAPIusage)); end; Result := fHTTP.Get(URL); fLastAPIusage := Now; finally // if IsSSL then FreeAndNil(fSSL); FreeAndNil(fHTTP); end; end; end.  Код программы:
      program Project4; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, vkAPI.Core.Requests in 'vkApi\vkAPI.Core.Requests.pas'; Var VK: vkAPI.Core.Requests.TRequestMng; begin VK := TRequestMng.Create(nil); try { TODO -oUser -cConsole Main : Insert code here } (VK.Get('https://oauth.vk.com/authorize?client_id=491792444&scope=offline' + '&redirect_uri=https://oauth.vk.com/blank.html&display=mobile&' + 'v=5.28&response_type=token')); except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; VK.Free; end.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу