До 12.5 млн токенов на тест ИИ-агента
Вход/ Регистрация
На главную
Облачные сервисы

Подключение сертификата Минцифры

Корневой сертификат подтверждает доверие к удостоверяющему центру, который выпускает цифровые сертификаты. Если добавить корневой сертификат в доверенное хранилище, приложение сможет проверять подлинность выпущенных этим центром сертификатов.

Сертификаты Минцифры выпускает Национальный удостоверяющий центр Минцифры России (Russian Trusted CA). Они нужны для защищенного HTTPS-соединения с ресурсами, которые используют сертификаты этого удостоверяющего центра.

Сертификаты Минцифры могут потребоваться, например, при работе с API банков и государственных организаций. По умолчанию они отсутствуют в доверенных хранилищах многих операционных систем, языковых сред и HTTP-библиотек, поэтому их необходимо добавить самостоятельно.

Подключить сертификаты Минцифры можно к backend-приложениям, а также к приложениям, развернутым с помощью Dockerfile или Docker Compose. Для frontend-приложений сертификаты не требуются.

Подключение сертификатов Минцифры

Сертификаты можно подключить при создании нового приложения или позже в настройках уже существующего.

При создании приложения

Чтобы подключить сертификаты Минцифры при создании приложения, включите переключатель «Добавить сертификаты по умолчанию» в блоке «Сертификаты Минцифры».

Подключение сертификата Минцифры

В существующем приложении

Чтобы подключить сертификаты Минцифры к уже созданному приложению:

  1. Перейдите в раздел «App Platform» и выберите нужное приложение.

  2. Откройте вкладку «Настройки».

  3. Включите опцию «Сертификаты Минцифры».

Подключение сертификата Минцифры

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

Установка сертификатов для приложений из 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 и большинства приложений, использующих системное хранилище, не требуется.

Была ли статья полезна?
Ваш ответ поможет улучшить документацию
Пока нет комментариев