SSL для мобильного приложения: сертификат для API и закрепление ключа, термины и чек-лист

Подробности, цифры, термины и чек-лист по теме «SSL для мобильного приложения: сертификат для API и закрепление ключа». Страница справочника целиком: SSL для мобильного приложения.

Коротко о теме

SSL для мобильного приложения: сертификат на домен API, цепочка без ошибок, Android 9 и iOS ATS, закрепление ключа в network_security_config.

Подробности по разделам

Какой SSL-сертификат нужен серверу мобильного приложения

Подойдёт обычный DV-сертификат на домен API. Let's Encrypt устанавливается так же, как для сайта, и шифрует ровно так же, как платный. Платный берут ради гарантийной выплаты или сертификата с проверкой организации, а не для работы приложения.

Почему приложение не подключается, хотя сайт в браузере открывается

Если команда выводит 1, сервер отдаёт один сертификат без цепочки. Для Let's Encrypt правильно 2 и больше: файл fullchain.pem содержит оба. Подробнее: проверка цепочки сертификатов и устройство цепочки.

Как проверять приложение с локальным https при разработке

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

Что такое закрепление сертификата и нужно ли оно приложению

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

Ключевые цифры

Термины на странице

Цепочка сертификатов
Цепочка сертификатов связывает сертификат сайта с корневым через промежуточные. Без промежуточного часть браузеров покажет ошибку.
PEM
PEM это текстовый формат файлов сертификатов и ключей, файлы .crt и .key часто в нём же.
Самоподписанный сертификат
Самоподписанный сертификат выпускает сам владелец. Браузеры ему не доверяют, он годится для тестов.
Продление домена
Продление это оплата домена на следующий срок. Цена продления часто выше цены регистрации.
Root-доступ
Root-доступ это права администратора на сервере: можно ставить любые программы и менять любые настройки.
Certbot
Certbot это программа, которая получает и продлевает сертификаты Let's Encrypt на сервере.
DV, OV, EV
DV подтверждает только владение доменом, OV и EV ещё и проверяют компанию. Шифрование у них одинаковое.
TLS
TLS это протокол шифрования, на котором работает HTTPS. Название SSL осталось по привычке.

Что проверить

  1. Выпустите сертификат после того, как домен указывает на сервер.
  2. Проверьте, что установлена вся цепочка сертификатов.
  3. Включите перенаправление с HTTP на HTTPS.
  4. Выберите конфигурацию по памяти и диску под задачу, процессор обычно вторичен.
  5. Проверьте тип виртуализации: KVM даёт свою систему и гарантированные ресурсы.
  6. Уточните, входит ли IPv4 и сколько стоит трафик сверх пакета.

Связанные страницы