SSL для мобильного приложения: сертификат для API и закрепление ключа, коротко и с данными
Конспект страницы: 5 разделов коротко, данные на 19 октября 2026 и ответы на 4 вопроса. Полный разбор с примерами: SSL для мобильного приложения: сертификат для API и закрепление ключа.
Коротко
Главная / Установка / SSL для приложения SSL для мобильного приложения настраивают на сервере, с которым оно общается: приложению нужен обычный доверенный сертификат на домен API, например api.example.com, с полной цепочкой. Отдельный сертификат внутри приложения не нужен, а закрепление ключа (pinning) добавляют, только когда требуется защита от подмены центра сертификации. Приложению нужен обычный сертификат на домен API с полной цепочкой, бесплатного Let's Encrypt хватает.
Конспект по разделам
Какой SSL-сертификат нужен серверу мобильного приложения
Мобильные системы сами запрещают обмен по голому http. Начиная с Android 9 (API 28) открытый трафик по умолчанию отключён, а iOS через App Transport Security требует https с TLS 1.2 или новее, исключения для отдельных доменов прописывают в Info.plist. Значит, API нужен адрес с https и сертификатом, которому система доверяет.
Почему приложение не подключается, хотя сайт в браузере открывается
Самая частая причина: сервер отдаёт только свой сертификат без промежуточного. Браузеры часто докачивают недостающее сами и скрывают проблему, а библиотеки приложений этого не делают и отвечают ошибкой проверки. Остальные причины: истёк срок ( сертификат истёк ), имя в сертификате не совпадает с адресом, сертификат выпущен на другой домен.
Как проверять приложение с локальным https при разработке
Эмулятор Android видит локальный сервер компьютера по адресу 10.0.2.2. Выпустите сертификат на это имя с помощью mkcert ( SSL для localhost ) и подключите корневой файл только в отладочной сборке. Для приложений с API 24 и выше сертификаты, добавленные пользователем вручную, по умолчанию не считаются доверенными, поэтому нужна явная настройка: Файл лежит в res/xml/network_security_config.xml, подключается атрибутом android:networkSecurityConfig у тега application, а сертификат кладут в res/raw/debug_cas.
Что такое закрепление сертификата и нужно ли оно приложению
Закрепление (certificate pinning) заставляет приложение принимать только соединения с заранее известным ключом сервера. Обычная проверка верит любому центру из системного списка, закреплённая верит только вашему ключу. Это защита от выпуска поддельного сертификата на ваш домен, и нужна она банкам, платёжным и медицинским приложениям.
Что проверить в сертификате API перед выпуском приложения
Отметьте пункты: чек-лист покажет следующий шаг. Отмечайте пункты по мере готовности, чек-лист подскажет следующий шаг
Вопросы и ответы
Нужен ли отдельный SSL-сертификат для мобильного приложения?
Нет. Сертификат ставят на сервер API, приложение лишь проверяет его по системному списку доверенных центров. Внутрь приложения кладут только открытый ключ или хеш, если включено закрепление.
Можно ли использовать самоподписанный сертификат в мобильном приложении?
Только для разработки: добавьте корневой сертификат в отладочную сборку. В релизе нужен сертификат публичного центра, иначе у пользователей запросы не пройдут проверку: самоподписанный сертификат.
Почему мобильное приложение выдаёт ошибку SSL, а сайт открывается в браузере?
Чаще всего сервер не отдаёт промежуточный сертификат: браузер его докачивает, библиотека приложения нет. Проверьте цепочку командой openssl и используйте fullchain.pem.
Что случится с приложением, если сертификат API истёк?
Запросы начнут завершаться ошибкой сразу у всех пользователей: окна «всё равно продолжить», как в браузере, в приложении нет. Включите автопродление и уведомление о сбое.