Корневой сертификат подтверждает доверие к центру сертификации, который выпускает цифровые сертификаты. Если добавить корневой сертификат в доверенное хранилище, приложение сможет проверять подлинность выпущенных этим центром сертификатов и устанавливать защищенное HTTPS-соединение с ресурсами, которые их используют.
В App Platform можно подключить сертификаты следующих центров сертификации:
-
Минцифры — корневой сертификат Национального удостоверяющего центра Минцифры России (Russian Trusted CA).
-
ТЦИ — корневой ECDSA-сертификат Центра сертификации ООО «ТЦИ». Центр выпускает TLS-сертификаты ECDSA и ГОСТ. В App Platform подключает только корневой ECDSA-сертификат.
Эти сертификаты могут потребоваться, например, при работе с API банков и государственных организаций. По умолчанию они отсутствуют в доверенных хранилищах многих операционных систем, языковых сред и HTTP-библиотек, поэтому их необходимо добавить самостоятельно.
Подключить сертификаты можно для backend-приложениий, а также для приложений, развернутых с помощью Dockerfile или Docker Compose. Для frontend-приложений сертификаты не требуются.
Подключение сертификатов
Сертификаты можно подключить при создании нового приложения или позже в настройках уже существующего. Подключайте сертификаты того центра сертификации, которым выпущен сертификат ресурса, к которому обращается приложение.
При создании приложения
Чтобы подключить сертификаты при создании приложения, на этапе «Настройка приложения» включите переключатели для нужных сертификатов:
-
«Сертификаты Минцифры»;
-
«Сертификаты ТЦИ».

В существующем приложении
Чтобы подключить сертификаты к уже созданному приложению:
-
Перейдите в раздел «App Platform» и выберите нужное приложение.
-
Откройте вкладку «Настройки».
-
В строке «Сертификаты» нажмите на кнопку «Изменить»
-
В открывшемся окне отметьте нужные сертификаты и нажмите на кнопку «Сохранить». После сохранения запустится повторный деплой приложения.

Установка сертификатов для приложений из Dockerfile и Docker Compose
Для приложений, развернутых с помощью Dockerfile или Docker Compose, App Platform добавляет файлы сертификатов в контейнер, но не устанавливает их в доверенное хранилище автоматически. Настроить доверие к сертификатам необходимо самостоятельно. Для этого добавьте нужные инструкции в Dockerfile сервиса, который будет обращаться к внешнему ресурсу.
- Минцифры
- ТЦИ
App Platform добавит в контейнер три файла:
-
/usr/local/share/ca-certificates/russian-trusted/russian_trusted_root_ca.crt— корневой сертификат; -
/usr/local/share/ca-certificates/russian-trusted/russian_trusted_sub_ca.crt— промежуточный сертификат; -
/usr/local/share/ca-certificates/russian-trusted/russian_trusted_ca_bundle.crt— корневой и промежуточный сертификаты в одном файле.
В зависимости от рантайма может потребоваться объединенный файл или два отдельных сертификата.
Node.js
Задайте переменную NODE_EXTRA_CA_CERTS:
ENV NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/russian-trusted/russian_trusted_ca_bundle.crt
Переменная используется при запросах через https, fetch, axios и другие HTTP-клиенты. Вносить изменения в код приложения не требуется.
Python
Для приложений, использующих requests, httpx или aiohttp, задайте переменные:
ENV REQUESTS_CA_BUNDLE=/usr/local/share/ca-certificates/russian-trusted/russian_trusted_ca_bundle.crt
ENV SSL_CERT_FILE=/usr/local/share/ca-certificates/russian-trusted/russian_trusted_ca_bundle.crt
Переменная REQUESTS_CA_BUNDLE используется библиотекой requests, а SSL_CERT_FILE — стандартным модулем ssl и библиотеками, которые работают через него.
Go
Задайте переменную SSL_CERT_FILE:
ENV SSL_CERT_FILE=/usr/local/share/ca-certificates/russian-trusted/russian_trusted_ca_bundle.crt
Java и другие JVM-языки
JVM использует собственное хранилище сертификатов, поэтому указать путь к объединенному PEM-файлу недостаточно. Импортируйте корневой и промежуточный сертификаты по отдельности:
RUN keytool -importcert -noprompt -trustcacerts \
-alias russian_trusted_root \
-file /usr/local/share/ca-certificates/russian-trusted/russian_trusted_root_ca.crt \
-keystore "$JAVA_HOME/lib/security/cacerts" -storepass changeit && \
keytool -importcert -noprompt -trustcacerts \
-alias russian_trusted_sub \
-file /usr/local/share/ca-certificates/russian-trusted/russian_trusted_sub_ca.crt \
-keystore "$JAVA_HOME/lib/security/cacerts" -storepass changeit
Инструкция подходит для Java, Kotlin, Scala и других языков, которые работают на JVM.
.NET
Задайте переменную SSL_CERT_FILE:
ENV SSL_CERT_FILE=/usr/local/share/ca-certificates/russian-trusted/russian_trusted_ca_bundle.crt
Установка в системное хранилище
Если приложение обращается к API через curl, wget, OpenSSL или другие инструменты, которые используют системное хранилище сертификатов, установите сертификаты в это хранилище:
RUN cp /usr/local/share/ca-certificates/russian-trusted/russian_trusted_root_ca.crt \
/usr/local/share/ca-certificates/russian-trusted/russian_trusted_sub_ca.crt \
/usr/local/share/ca-certificates/ \
&& update-ca-certificates
Для выполнения команды в образе должен быть установлен пакет ca-certificates. После установки указывать путь к сертификатам для curl, wget и большинства приложений, использующих системное хранилище, не требуется.