Раньше считалось, что если сайт не открывается в Chrome для Android, проще поставить второй браузер или лезть в системные настройки. Теперь выяснилось, что проблему можно решить точечно — на уровне самой сборки браузера, не трогая хранилище Android. Именно так устроен Ruthenium: он добавляет поддержку корня Russian Trusted Root CA только внутри Chromium.

Контекст: почему вообще возникла такая сборка

Некоторые банки и государственные сервисы используют TLS-цепочки, которые заканчиваются на корне Russian Trusted Root CA. Обычный Chrome для Android такой сайт не принимает: браузер не находит нужный корень в хранилище Chromium и показывает ошибку проверки сертификата.

Автор Ruthenium хотел сохранить привычный интерфейс Chrome и не заводить отдельный браузер для нескольких адресов. Поэтому он взял стабильный Chromium для Android, добавил корень с ограничениями и собрал отдельный APK. На выходе получился браузер, который работает с такими цепочками, но не меняет системные настройки устройства.

Если вам интересна сама логика проверки сертификатов, посмотрите наш разбор 0-day в Metabase уже используют для кражи данных и материал В Linux нашли дыру, которая 18 лет вела к root-доступу — оба текста хорошо показывают, почему точность в цепочках доверия так важна.

Какие есть варианты и чем они отличаются

Оставить всё как есть

Это самый простой путь, но он часто упирается в ошибку сертификата. Пользователь видит отказ в соединении и не понимает, дело в браузере, в сайте или в настройках устройства.

Плюс здесь один — ничего не надо менять. Минус очевиден: если сайт опирается на корень, которого нет в хранилище браузера, соединение не поднимется.

Поставить браузер с уже встроенной поддержкой

Такой вариант закрывает проблему быстро. Но он тянет за собой новый интерфейс, новую синхронизацию привычек и ещё один набор настроек.

Для человека, который привык к Chrome, это не всегда удобно. Именно от этой лишней миграции Ruthenium и пытается уйти.

Добавить корень в системное хранилище Android

Технически это решает вопрос шире, но затрагивает всё устройство. Любое приложение, которое доверяет системному хранилищу, получает новый корень автоматически.

Для корпоративного телефона или личного смартфона с чувствительными данными это уже не точечная правка, а изменение всей модели доверия. Автор проекта как раз и отказался от такого шага.

Собрать Chromium с ограниченным корнем

Это наиболее аккуратный вариант. Ruthenium добавляет Russian Trusted Root CA только в хранилище браузера и ограничивает его зонами .ru и .рф, то есть доверие не расползается на весь интернет.

У подхода есть и слабое место: текущая настройка лучше всего работает для DNS-имён, а не для всех возможных типов идентификаторов в сертификате. Но для типичного сценария с сайтами банков и госресурсов этого часто достаточно.

Кому какой подход подходит

Если вам нужен один-два адреса, а остальное время вы работаете в привычном браузере, сборка вроде Ruthenium выглядит разумнее всего. Она не меняет систему и не заставляет переучиваться.

Если же вы администрируете парк устройств, лучше смотреть на системную политику и централизованное управление сертификатами. Там важны предсказуемость, аудит и одинаковое поведение всех приложений.

А если задача — просто проверить, почему сайт не открывается, сначала стоит исключить банальные причины: неверное время на телефоне, битый кэш, проблемы с сетью или ошибку на стороне самого ресурса. В таких случаях помогает и обычная диагностика браузера, и наш материал о защите входа в аккаунты по типу инстаграм вход в аккаунт через браузер — там мы разбираем, где заканчиваются проблемы сервиса и начинается поведение устройства.

Что важно в самой реализации

Проект не вводит собственный TLS-верификатор. Chromium по-прежнему проверяет имя сайта, срок действия сертификата и подписи, а Ruthenium лишь добавляет корень с ограничениями.

Чтобы корень не подменили на этапе сборки, автор привязал его к lock-файлу и сверяет SHA-256 перед компиляцией. Это нормальная практика для сборок, где доверие к сертификату не должно зависеть от ручных правок.

Есть и практические ограничения. В Ruthenium отключены лишние XR-функции, вход в аккаунт на уровне браузера по умолчанию запрещён, а приложение хранит свои данные отдельно от обычного Chrome. Для пользователя это означает более узкий, но и более контролируемый профиль работы.

Рекомендация

Если вам нужен браузер для Android, который открывает сайты с корнем Russian Trusted Root CA и не трогает системные настройки, такая сборка выглядит интереснее простого переключения на другой браузер. Но это решение именно для узкого сценария — не для всех сайтов и не для всех задач.

Для повседневной работы важнее не сам факт поддержки корня, а дисциплина: проверять адрес сайта, не игнорировать предупреждения браузера и не ставить сертификаты наобум. В защите данных точечная настройка часто лучше, чем радикальная переделка всего устройства.

Практический чек-лист

  • Проверьте, действительно ли ошибка связана с сертификатом, а не с временем на устройстве или сбойной сетью.
  • Если речь о банке или госсервисе, посмотрите, какой корень указан в цепочке доверия.
  • Не добавляйте корневые сертификаты в систему без понимания последствий для всех приложений.
  • Для узких сценариев держите отдельный браузерный профиль или отдельную сборку браузера.
  • Не используйте сомнительные APK и проверяйте подпись сборки перед установкой.
  • Для командировок и поездок заранее готовьте устройство: обновления, резервные копии и дополнительный слой защиты для поездок.
Поделиться: