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

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

После изменения настройки автоматически запустится повторный деплой приложения.
Установка сертификатов для приложений из Dockerfile и Docker Compose
Для приложений, развернутых с помощью Dockerfile или Docker Compose, сертификаты не устанавливаются в доверенное хранилище автоматически. 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
Файл russian_trusted_ca_bundle.crt содержит корневой и промежуточный сертификаты. В зависимости от рантайма может потребоваться объединенный файл или два отдельных сертификата.
Настроить доверие к сертификатам в приложении необходимо самостоятельно. Добавьте нужные инструкции в Dockerfile сервиса, который будет обращаться к API.
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 и большинства приложений, использующих системное хранилище, не требуется.