- Установка собственного корневого сертификата в Android и запуск Citrix XenApp Web Interface
- Немножко предыстории:
- Что же за проблемы могли возникнуть?
- Так что же все-таки надо, чтобы запустить через Citrix Receiver приложения опубликованные на Citrix XanApp вашего предприятия?
- От требований (если они все выполнены) переходим к действию.
- Расслабьтесь. Владельцы старых Android-смартфонов не лишатся доступа к миллионам сайтов
- Сертификаты безопасности на Android
- Не открывается сайт на Android. Что делать
- Android 6.0.1 — установка сертификата ISRG Root X1
- Просмотр сертификатов на Android 6.0
- Добавляем ISRG Root X1 в список доверенных сертификатов на Android 6.0
Установка собственного корневого сертификата в Android и запуск Citrix XenApp Web Interface
В принципе, мы с shoguevara довольно давно заморачивались вопросом установки корневого сертификата в Android устройство и даже находили парочку не самых тривиальных инструкций, но до этого в таком действии надобности не было. Надобность же появилась после приобретения планшета на Android.
Немножко предыстории:
Стоит у нас в конторе Citrix XenApp для обеспечения удалённой работы из офиса. Что это за зверь и с чем его едят рассказывать не будем — кому это надо, те давно в курсе.
В этой совместной с записи мы хотим рассказать об установке корневого сертификата и настройке клиентской части — Citrix Receiver для Android.
В принципе, клиент не самый убогий — пользоваться можно, а если Вы где-то в поездке, а на руках только телефон на Android или планшет — это единственный выход для быстрого подключения и исправления что-либо через рабочий компьютер.
Вроде бы софтина не особо мудрёная да и настроек особо много не требует, а если Вы используете веб-интерфейс для запуска приложений, как это сделано в нашей организации, то и совсем никаких…
Но не все бывает так безоблачно!
Что же за проблемы могли возникнуть?
Для организации такого рода архитектуры удалённого доступа довольно часто используются сертификаты, которые подписаны центрами не входящими в список стандартных. Почему Google такие нехорошие, и не включили в свою ОСь такую простую функцию, (наряду с такой, опять же, нужной функцией, как возможность прописать прокси-сервер) как установка дополнительных корневых сертификатов ЦА, тут мы обсуждать не собираемся.
Первым признаком того, что сервер использует самоподписанный сертификат является то, что, когда Вы открываете, откуда бы то ни было веб-ресурс с помощью, например, браузера Mozilla Firefox, программа выдает сообщение о том, что не может сама принять решение о том доверять ли сертификату для установления защищённого соединения или нет — она предоставляет право выбора Вам.
Если у вас наблюдается такая картина, то эта статья как раз для Вас!
Так что же все-таки надо, чтобы запустить через Citrix Receiver приложения опубликованные на Citrix XanApp вашего предприятия?
В первую очередь, как оказалось, необходимо установить Mozilla Firefox для Android. Очень странно, но ни один другой браузер не передаёт нужный для подключения файл (launch.ica) в программу-клиент. Знаем только то, что с Firefox все работает нормально.
Во вторую очередь нужна сама программа-клиент. Тут на Android Market у нас есть выбор: стабильный Citrix Receiver, либо находящийся на этапе тестирования Citrix Labs Receiver. Второй у нас не захотел принимать сертификат ни в какую, первый же — стабильный, после бессонной ночи таки у нас и заработал.
В-третьих, необходимо иметь root-доступ к вашему устройству, либо возможность извлекать и записывать обратно файлы через adb, хотя, в этом случае тоже требуется root-доступ (как его настроить Вы сможете узнать потратив немного времени на просмотр результатов, который выдал вам Google на запрос вида » root access howto» или » adb configure howto»).
Вопросом настройки adb мы заморачиваться, опять таки, не стали, так как предпочитаем работать напрямую через файл-менеджеры с системой. В любом случае, в сети довольно много информации по этому поводу (русскоязычный ресурс, на котором больше всего информации такого плана — http://4pda.ru/forum, англоязычный — http://forum.xda-developers.com). В случае, если Вы будете использовать прямой доступ к системным файлам, то нужен файловый менеджер, который умеет использовать root-права (например, Root Explorer).
В-четвертых, нужна машина с любым из популярных Linux-дистрибутивов и установленной Java-машиной от Oracle (мы использовали Ubuntu 10.10 с установленным JRE).
И последнее в списке, но далеко не последнее по значимости — сам корневой сертификат центра сертификации (пусть он будет называться CompanyCA.crt).
От требований (если они все выполнены) переходим к действию.
Для удобства будем перечислять все по пунктам.
1. Заходим с устройства на Android Market и устанавливаем Firefox.
2. Заходим с устройства на Android Market и устанавливаем Citrix Receiver.
3.1.1 (3.1.х для тех кто предпочитает прямой доступ) С помощью файлового менеджера копируем файл /system/etc/security/cacerts.bks cacerts.bks на карту SD.
3.1.2 Подключаем устройство как накопитель к компьютеру с Linux.
3.1.3 Копируем файл cacerts.bks с корня карточки в вашу домашнюю папку.
3.2.1 (adb) копируем сертификат
$ adb pull /system/etc/security/cacerts.bks cacerts.bks
4. Этот пункт предполагает, что Вы уже установили и настроили JRE 1.6 и прописана переменная окружения JAVA_HOME (в моем случае JAVA_HOME=/usr/lib/jvm/java-6-sun/).
Скачиваем пакет bouncycastle.org/download/bcprov-jdk16-146.jar и кидаем его в папку $JAVA_HOME/jre/lib/ext/
Если у вас установлен JDK, то этот пакет, надо так же закинуть в папку /usr/lib/jvm/java-6-openjdk/jre/lib/ext
wget bouncycastle.org/download/bcprov-jdk16-146.jar
sudo cp bcprov-jdk16-146.jar $JAVA_HOME/jre/lib/ext/bcprov-jdk16-146.jar
# или sudo cp bcprov-jdk16-146.jar /usr/lib/jvm/java-6-sun/jre/lib/ext/bcprov-jdk16-146.jar
5. Кидаем файл сертификата CompanyCA.crt так же в домашнюю папку. Если его у Вас нет, но Вы соглашались принять сертификат при переходе на веб-интерфейс XenApp, то его можно экспортировать из Firefox. Как это сделать — подскажет Google. Можем лишь уточнить, что шифрование нужно X.509 PEM.
6. Скачиваем и устанавливаем Android SDK (если Вы не планируете использовать adb, то этот шаг можно пропустить):
wget dl.google.com/android/android-sdk_r10-linux_x86.tgz
tar -xvzf android-sdk_r10-linux_x86.tgz
sudo mv android-sdk-linux_x86 /usr/lib/android-sdk-linux_x86
Запускать что-либо из комплекта для нашей задачи не требуется. Но нужно прописать исполняемые файлы SDK в переменных окружения export PATH=$
В нашем случае вопрос с переменными окружения решается добавлением в конец файла
/.bashrc строчек
export PATH=$
export JAVA_HOME=/usr/lib/jvm/java-6-sun/jre
7. Открываем консоль и выполняем команду
keytool -keystore cacerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass changeit -importcert -trustcacerts -alias CACERT -file CompanyCA.crt
Будьте внимательны — не меняйте параметр -storepass changeit, там действительно такой пароль)
В ответ на эту команду Вы должны получить информацию о сертификате и запрос «Trust this certificate? [no]: » — соответственно отвечаем «y».
Все, наш файл подготовлен. Теперь нужно загрузить его на устройство.
8.1.1 (прямой доступ) Подключаем устройство как накопитель к компьютеру;
8.1.2 Загружаем на карту файл cacerts.bks;
8.1.3 Переносим с помощью менеджера файлов cacerts.bks из папки /sdcard в папку /system/etc/security/, предварительно примонтировав её для записи;
8.2.1 (adb) Монтируем систему для записи:
$ adb shell mount -o remount,rw /system;
8.2.2 Загружаем файл:
$ adb push cacerts.bks /system/etc/security/;
8.2.2 Монтируем систему только для чтения:
$ adb shell mount -o remount,ro /system.
На этом трудная часть пройдена. Осталась пара «финтов ушами».
9. Перезагружаем устройство.
10. Запускаем Firefox и открываем страницу веб-доступа.
Появится приблизительно такая картина:
Тут нам надо нажать на ссылку «Already installed» в верхней части экрана;
11. Выбираем приложение из списка и пробуем запустить;
Источник
Расслабьтесь. Владельцы старых Android-смартфонов не лишатся доступа к миллионам сайтов
Короткий период программной поддержки никогда особенно не страшил пользователей Android. Большинству из них было достаточно того, чтобы смартфон по-прежнему работает даже спустя два года после выхода, позволяет скачивать любые приложения из Google Play, а при необходимости не чинит препятствий для перепрошивки. Поэтому новость о том, что в 2021 году пользователи Android 7.1.1 и более ранних версий ОС лишатся доступа к более чем 200 миллионам сайтов из-за прекращения поддержки системного сертификата безопасности, прошла почти незамеченной. Но это и к лучшему.
Прекращение поддержки сертификата DST Root X3 на Android 7.1.1 отменяется
Прекращение поддержки сертификата безопасности могло привести к тому, что пользователям смартфонов на Android 7.1.1 и ниже был бы закрыт доступ к миллионам сайтов, которые используют его для защиты.
Если вы не понимаете, о чём идёт речь, вот вам небольшой экскурс. Около месяца назад стало известно, что компания Let’s Encrypt, разработчик сертификата безопасности DST Root X3, собирается прекратить его поддержку. Это специальный компонент, который отвечает за защиту пользователей при посещении сайтов в интернете, блокируя фишинговые и уведомляя об отсутствии протокола шифрования и, следовательно, опасности ввода персональных данных, которые могут быть либо перехвачены, либо прочитаны владельцем ресурса.
Сертификаты безопасности на Android
DST Root X3 — сертификат безопасности, вшитый в старые смартфоны на Android
Сертификат DST Root X3, поддержка которого должна была прекратиться в 2021 году, являлся для всех смартфонов с Android 7.1.1 и ниже системным. То есть зашитым в операционную систему по умолчанию без возможности самостоятельной замены. Единственный вариант заменить его – выпустить обновление с необходимыми изменениями. Но поскольку производители процессоров поддерживают их не дольше трёх лет, у владельцев потенциально затронутых устройств не было никакой надежды на апдейт.
К счастью для владельцев старых устройств, Let’s Encrypt продлила соглашение с IdenTrust, поставщиком цифровых подписей для сертификатов безопасности. Это значит, что действие сертификата DST Root X3 будет продлено, а пользователи смогут и дальше пользоваться сайтами в интернете без ограничений. Получается, что им больше не нужно ждать ни обновлений с обновлённым сертификатом безопасности, ни перепрошивать свои аппараты самостоятельно на кастомные прошивки, ни использовать альтернативные браузеры со встроенными сертификатами.
Не открывается сайт на Android. Что делать
Firefox — едва ли не единственный браузер со встроенными сертификатами безопасности
Впрочем, даже если бы поддержка сертификата DST Root X3 действительно прекратилась, большой беды всё равно бы не произошло. Несмотря на то что сертификаты являются встроенным системным компонентом Android, существуют браузеры, у которых есть собственный набор сертификатов. То есть даже если бы DST Root X3 лишился поддержки, пользователи Android всё равно смогли бы продолжать пользоваться интернетом как ни в чём не бывало. Главное установить подходящий браузер. В нашем случае это Mozilla Firefox – наиболее популярный и авторитетный веб-обозреватель, имеющий версии и для ПК, и для мобильных платформ.
Вообще, держать Firefox у себя можно просто на всякий случай в качестве подстраховки, особенно, если ваш смартфон уже не получает обновлений. Ведь никогда не знаешь, в какой момент сертификат безопасности, который используется системой по умолчанию, лишится поддержки и прекратит обеспечивать вас доступом к нужным вам сайтам. А, учитывая, что количество веб-ресурсов, для которых сертификаты являются проводниками, измеряются десятками и сотнями миллионов, Firefox про запас уже не выглядит как прихоть.
Источник
Android 6.0.1 — установка сертификата ISRG Root X1
30 сентября 2021 г окончился срок действия корневого сертификата IdenTrust DST Root CA X3. Вместо него теперь должен использоваться самоподписанный сертификат ISRG Root X1, который добавили в качестве второго корневого сертификата и образовали альтернативную цепочку.
Не все версии Android поддерживают новый корневой сертификат ISRG Root X1. Поддержка есть у Android >= 7.1.1. Пишут, что Android от 2.3.6 до 4.4.4 должен работать из-за специального шаманства. В Android 6.0.1 у меня те сайты, сертификаты которых пошли по цепочке до IdenTrust DST Root CA X3, открылись, несмотря на то, что срок действия сертификата истёк. А те сайты, сертификаты которых пошли по цепочке до самоподписанного ISRG Root X1, не открылись, потому что его нет в списке доверенных.
Соответственно, все системы, которые не доверяют сертификату ISRG Root X1, будут открывать сайты с сертификатом Let’s Encrypt вот так:
На моём телефоне с Andriod 6.0.1 Marshmallow сертификат ISRG Root X1 отсутствует в списке доверенных, поэтому сайты с сертификатом Let’s Encrypt у меня перестали открываться.
Можно, конечно, каждый раз нажимать на кнопку «Дополнительные», потом на ссылку «Перейти на сайт. (небезопасно)». Тогда сайт откроется.
Можно купить новый телефон, бугагашечки. Можно установить браузер Mozilla Firefox, у него собственный набор доверенных сертификатов, который постоянно обновляется. Но всё-таки хотелось бы, чтобы всё само открывалось без танцев с бубнами в привычном встроенном браузере. И на привычном старом телефоне.
Просмотр сертификатов на Android 6.0
Посмотрим, какие сейчас используются сертификаты. Нажимаем на значок слева от URL — ⓘ. Открывается окно «Незащищённое подключение».
Для просмотра сертификатов нажимаем ссылку «Данные сертификата».
Сертификат выдан Let’s Encrypt. Срок действия ещё не вышел. Посмотрим промежуточный сертификат, стрелка вниз.
Видно только промежуточный сертификат R3, выбираем.
Этот сертификат выдан DST Root CA X3, срок действия которого, как мы знаем, истёк. Более того, срок сертификата R3 тоже истёк. И на этом браузер останавливается и не доверяет сайту. А всё потому, что проверка пошла по основной цепочке. Альтернативная цепочка не была задействована, потому что сертификат ISRG Root X1 неизвестен Android.
Добавляем ISRG Root X1 в список доверенных сертификатов на Android 6.0
Первым делом нужно установить на телефон PIN-код или графический код. Android 6.0.1 позволяет устанавливать собственные сертификаты только с блокировкой экрана. При отключении PIN-кода или графического кода персональные сертификаты будут удалены (не проверял). В любом случае, при попытке добавить сертификат вас попросят включить блокировку экрана.
Идём в Настройки → Экран блокировки и защита → Тип блокировки экрана. Здесь устанавливаем PIN-код или другой способ блокировки.
Идём в Настройки → Экран блокировки и защита → Другие параметры безопасности.
Мотаем вниз и видим нужные нам пункты:
- Сертификаты безопасности
- Сертификаты пользователя
- Установить из памяти
- Удалить учётные данные
Нажимаем Сертификаты безопасности, находим протухший сертификат Digital Signature Trust Co. (DST Root CA X3) и отключаем его, чтобы телефон не пытался использовать эту цепочку.
Скачиваем сертификат ISRG Root X1 и Let’s Encrypt R3 в формате PEM. Я буду ставить оба сертификата.
Нажимаем на сертификат и устанавливаем его. Используется для VPN и приложений.
Второй тоже устанавливаем.
Список установленных сертификатов можно посмотреть в Настройки → Экран блокировки и защита → Другие параметры безопасности → Сертификаты безопасности → Пользователь.
Можно посмотреть подробную информацию о каждом сертификате.
Сертификат безопасности ISRG Root X1 действителен до 2035 года, самоподписанный.
Сертификат безопасности Let’s Encrypt R3 действителен до 2025 года, промежуточный.
Теперь сайты с сертификатами Let’s Encrypt открываются без проблем на телефоне с Android 6.0.1 Marshmallow.
Источник