zloi
zloi26 лютого 2019 р. 09:30

SSL на Android

SSL, Android, qt

Добрый день! Подскажите пожалуйста, при запуске андроид приложения пишет: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed, но когда запускаю на компе все отлично.

P.S. вывод qDebug() « QSslSocket::supportsSsl() « QSslSocket::sslLibraryBuildVersionString() « QSslSocket::sslLibraryVersionString();
(android) false "OpenSSL 1.0.2p 14 Aug 2018" ""
(desktop) true "OpenSSL 1.0.2p 14 Aug 2018" "OpenSSL 1.0.2n 7 Dec 2017"

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

19
Evgenii Legotckoi
  • 26 лютого 2019 р. 09:34
  • (відредаговано)

Добрый день.

OpenSSL хоть и используется в Qt, но не является частью библиотеки и не поставляется в пакете разработки Qt. Как я понимаю, это связано с некоторыми юридическими моментами.

В документации Qt имеется описание настройки OpenSSL для использования в Android APK.

Посмотрите эту документацию на Qt

    zloi
    • 26 лютого 2019 р. 09:43

    Смотерл эту статью, но честно говоря мало, что понял и как видимо на описываются действия для linux,а у меня windows

      Evgenii Legotckoi
      • 26 лютого 2019 р. 09:53

      Я думаю, что скрипт универсальный, там есть пометки с информацией для Windows

      Посмотрите вот эту часть

      ANDROID_NDK_ROOT: /home/user1/android-ndk-r10d
      ANDROID_ARCH: arch-arm64
      ANDROID_EABI: aarch64-linux-android-4.9
      ANDROID_API: android-21
      ANDROID_SYSROOT: /home/user1/android-ndk-r10d/platforms/android-21/arch-arm64
      ANDROID_TOOLCHAIN: /home/user1/android-ndk-r10d/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin
      FIPS_SIG:
      CROSS_COMPILE: aarch64-linux-androideabi-
      ANDROID_DEV: /home/user1/android-ndk-r10d/platforms/android-21/arch-arm64/usr
      

      Полагаю, что здесь просто нужно заменить пути (В скрипте там переменные именованные, думаю, что можно просто переписать все эти переменные для пути NDK)

      ANDROID_NDK_ROOT: C:/path/to/ndk/android-ndk-r10d
      ANDROID_ARCH: arch-arm64
      ANDROID_EABI: aarch64-linux-android-4.9
      ANDROID_API: android-21
      ANDROID_SYSROOT: C:/path/to/ndk/android-ndk-r10d/platforms/android-21/arch-arm64
      ANDROID_TOOLCHAIN: C:/path/to/ndk/android-ndk-r10d/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin
      FIPS_SIG:
      CROSS_COMPILE: aarch64-linux-androideabi-
      ANDROID_DEV: C:/path/to/ndk/android-ndk-r10d/platforms/android-21/arch-arm64/usr
      

      Также для сборки OpenSLL нужно использовать perl v5.14 c библиотекой msys.

      Ещё есть инофрмация о hosts на 107 строке, полагаю, что имелся ввиду этот скрипт. То есть должно быть достаточно внимательно просмотреть весь скрипт, установить необходимые пакеты и поправить переменные в нужных местах.

        Михаиллл
        • 30 липня 2019 р. 01:57

        еще тут есть сборка для андроид https://github.com/lynx570/android_openssl/tree/5.12.4_5.13.0

          ВС
          • 08 серпня 2019 р. 09:35
          • (відредаговано)

          Всем Привет. Намучался я с этим openssl. Пробую перекомпилировать свое приложение на 5.13 , и вылазит QSslSocket::connectToHostEncrypted: TLS initialization failed.
          OpenSSl в проект подключил от сюда .
          Эта строка
          qDebug() << QSslSocket::supportsSsl() << QSslSocket::sslLibraryBuildVersionString() << QSslSocket::sslLibraryVersionString();
          выводит false "OpenSSL 1.1.1b 26 Feb 2019" ""
          Хотя если рапоковать свою апк и посмотреть версию openssl то получим OpenSSL 1.1.1c 28 May 2019
          Может кто сталкивался с такой проблеммой.
          OS Ubuntu 18.04 компилирую под андройд

            Evgenii Legotckoi
            • 09 серпня 2019 р. 03:35

            Видимо ему нужна конкретная версия за февраль, стоит как-то подсунуть ту версию.

              ВС
              • 09 серпня 2019 р. 06:28

              ПРоверил приложение на андройд 6 -работает. А на 5.1 не работает. Видимо андрой 5.1 уже не потдерживает openssl 1.1.1c

                Evgenii Legotckoi
                • 09 серпня 2019 р. 06:31

                Скорее, ещё не поддерживат. версия b является более ранней.

                  Михаиллл
                  • 24 квітня 2020 р. 03:36

                  Попробовал старое решение https://github.com/lynx570/android_openssl/tree/5.12.4_5.13.0 но оно почему-то не работает. Что же делать?

                    Evgenii Legotckoi
                    • 24 квітня 2020 р. 03:40
                    • (відредаговано)

                    А у вас какая версия Qt? В репозитории написано, что это для Qt 5.12.4 и 5.13.0, причём в изначальном репозитории, форком которого является тот, что вы указали. А тот, что указали вы так вообще уже 10 месяцев как не обновлялся. Вам следует посмотртеь изначальный репозиторий

                      Михаиллл
                      • 24 квітня 2020 р. 03:48

                      У меня 5,14. Похоже нужно или установить старую версию, или найти новую сборку

                        Михаиллл
                        • 24 квітня 2020 р. 06:03

                        А с новой андроид студией старые версии qt не работаю, но я читал что у людей подобное решение работает с 14 версией qt. Я поместил папку android_openssl-master в свой проект и добавил в проект файл openssl.pri. Скажите пожалуйста, что я упускаю.

                          Михаиллл
                          • 24 квітня 2020 р. 07:16

                          Может быть вы знаете как правильно собрать OpenSSL из исходников

                            Evgenii Legotckoi
                            • 24 квітня 2020 р. 07:19

                            ни разу не собирал ((

                              A
                              • 01 червня 2020 р. 11:02

                              Возьмите этот репозиторий, он предлагается в официальной документации qt
                              https://github.com/KDAB/android_openssl

                                Михаиллл
                                • 01 червня 2020 р. 11:12

                                Я видел его, только там макс 13-й, а сейчас вышел уже 15,0, но они не спешет сделать сборки.
                                Помогло только добавление других сборок, но не могу их прикрепить, т.к. они весят больше 1 мб.

                                  A
                                  • 01 червня 2020 р. 11:26
                                  • (відредаговано)
                                  • Відповідь була позначена як рішення.

                                  у меня стоит версия Qt 5.14.2. В настройках android поставил openssl из коробки, и этот прроект автоматически стянулся.
                                  Достаточно было только добавить в .pro-файл строку после этого и все работает
                                  android: include($$(HOME)/Android/Sdk/android_openssl/openssl.pri)

                                    zloi
                                    • 16 серпня 2020 р. 10:22

                                    Наконец-то удалось решить проблему. Проблема была в суфиксах библиотек, обзятельно нужно добавлять суфик _1_1.so иначе andorid будет загружать версию _1_0.so, что естественно не подходит. Вопрос закрыт, всем спасибо)

                                      zloi
                                      • 18 серпня 2020 р. 21:57
                                      • (відредаговано)

                                      Решил проблему, взял данный репозиторий (https://github.com/KDAB/android_openssl), но необходимо указавать суфикс _1_1 в имени файлах библиотек (например: libssl_1_1.so), без этого суфикса android будет подгружать свои библиотеки.

                                        Коментарі

                                        Only authorized users can post comments.
                                        Please, Log in or Sign up
                                        AD

                                        C++ - Тест 004. Указатели, Массивы и Циклы

                                        • Результат:50бали,
                                        • Рейтинг балів-4
                                        m
                                        • molni99
                                        • 26 жовтня 2024 р. 01:37

                                        C++ - Тест 004. Указатели, Массивы и Циклы

                                        • Результат:80бали,
                                        • Рейтинг балів4
                                        m
                                        • molni99
                                        • 26 жовтня 2024 р. 01:29

                                        C++ - Тест 004. Указатели, Массивы и Циклы

                                        • Результат:20бали,
                                        • Рейтинг балів-10
                                        Останні коментарі
                                        ИМ
                                        Игорь Максимов22 листопада 2024 р. 11:51
                                        Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                                        Evgenii Legotckoi
                                        Evgenii Legotckoi31 жовтня 2024 р. 14:37
                                        Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                                        A
                                        ALO1ZE19 жовтня 2024 р. 08:19
                                        Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                                        ИМ
                                        Игорь Максимов05 жовтня 2024 р. 07:51
                                        Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                                        d
                                        dblas505 липня 2024 р. 11:02
                                        QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                                        Тепер обговоріть на форумі
                                        Evgenii Legotckoi
                                        Evgenii Legotckoi24 червня 2024 р. 15:11
                                        добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                                        t
                                        tonypeachey115 листопада 2024 р. 06:04
                                        google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                                        NSProject
                                        NSProject04 червня 2022 р. 03:49
                                        Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
                                        9
                                        9Anonim25 жовтня 2024 р. 09:10
                                        Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

                                        Слідкуйте за нами в соціальних мережах