Planetahost VPS
Перейти к основному контенту

Как установить сертификаты НУЦ Минцифры России

intro-Installation-of-Ministry-of-Digital-Development-certificates-planetahost.png

Введение

Сертификаты Минцифры используются для проверки подлинности TLS-соединений с сайтами и сервисами, применяющими российские сертификаты. Их установка может потребоваться для работы платёжных шлюзов, банковских сервисов и других систем, использующих соответствующую цепочку доверия.

В этой статье рассмотрим установку корневого и промежуточного сертификатов в Debian, Ubuntu, CentOS, RHEL и Windows, а также проверку результата.

1. Какие сертификаты необходимо установить

Для настройки доверия используются два сертификата:

  • Russian Trusted Root CA - корневой сертификат удостоверяющего центра.

  • Russian Trusted Sub CA - промежуточный сертификат, участвующий в выпуске сертификатов серверов.

Сертификаты можно получить с официального портала Госуслуг: https://www.gosuslugi.ru/crt.

В инструкциях ниже используются прямые ссылки на файлы сертификатов. Перед установкой рекомендуется проверить их актуальность и подлинность.

Важно учитывать, что установка сертификатов на сервере и на компьютере клиента решает разные задачи. Если приложение использует собственное хранилище сертификатов, добавление сертификатов в системное хранилище может не устранить ошибку.

2. Установка на Debian и Ubuntu

Шаг 1. Установите необходимые пакеты

Подключитесь к серверу по SSH и выполните:

sudo apt update
sudo apt install -y ca-certificates openssl wget

Шаг 2. Скачайте сертификаты

Выполните команды:

wget -O russian_trusted_root_ca_pem.crt \
  https://gu-st.ru/content/lending/russian_trusted_root_ca_pem.crt

wget -O russian_trusted_sub_ca_pem.crt \
  https://gu-st.ru/content/lending/russian_trusted_sub_ca_pem.crt

Проверьте, что файлы содержат сертификаты X.509:

openssl x509 -in russian_trusted_root_ca_pem.crt -noout -subject -issuer
openssl x509 -in russian_trusted_sub_ca_pem.crt -noout -subject -issuer

изображение.png

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

Шаг 3. Добавьте сертификаты в системное хранилище

Скопируйте файлы в каталог доверенных сертификатов:

sudo cp russian_trusted_root_ca_pem.crt /usr/local/share/ca-certificates/
sudo cp russian_trusted_sub_ca_pem.crt /usr/local/share/ca-certificates/

Шаг 4. Обновите хранилище

Выполните:

sudo update-ca-certificates

изображение.png

Система обработает сертификаты и обновит хранилище доверия.

3. Установка на CentOS и RHEL

В CentOS Stream, RHEL и совместимых дистрибутивах используется механизм ca-trust.

Шаг 1. Установите необходимые пакеты

Для современных систем:

sudo dnf install -y ca-certificates openssl wget

В старых версиях CentOS вместо dnf может использоваться yum:

sudo yum install -y ca-certificates openssl wget

Шаг 2. Скачайте сертификаты

Выполните:

wget -O russian_trusted_root_ca_pem.crt \
  https://gu-st.ru/content/lending/russian_trusted_root_ca_pem.crt

wget -O russian_trusted_sub_ca_pem.crt \
  https://gu-st.ru/content/lending/russian_trusted_sub_ca_pem.crt

Проверьте содержимое файлов:

openssl x509 -in russian_trusted_root_ca_pem.crt -noout -subject -issuer
openssl x509 -in russian_trusted_sub_ca_pem.crt -noout -subject -issuer

изображение.png

Шаг 3. Добавьте сертификаты в системное хранилище

Скопируйте файлы в каталог доверенных сертификатов:

sudo cp russian_trusted_root_ca_pem.crt /etc/pki/ca-trust/source/anchors/
sudo cp russian_trusted_sub_ca_pem.crt /etc/pki/ca-trust/source/anchors/

Шаг 4. Обновите хранилище

Выполните:

sudo update-ca-trust

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

изображение.png

4. Установка на Windows

В Windows сертификаты можно установить через графический интерфейс или PowerShell. Второй способ удобнее для администрирования Windows Server и автоматизации.

В примерах ниже сертификаты скачиваются в каталог C:\certs, а затем импортируются в хранилище локального компьютера.

Способ 1. Скачивание и установка через PowerShell

Шаг 1. Скачайте сертификаты

Откройте PowerShell от имени администратора и выполните:

$CertPath = "C:\certs"

New-Item -Path $CertPath -ItemType Directory -Force | Out-Null

Invoke-WebRequest -Uri "https://gu-st.ru/content/lending/russian_trusted_root_ca_pem.crt" -OutFile "$CertPath\russian_trusted_root_ca_pem.crt"

Invoke-WebRequest -Uri "https://gu-st.ru/content/lending/russian_trusted_sub_ca_pem.crt" -OutFile "$CertPath\russian_trusted_sub_ca_pem.crt"

Проверьте наличие файлов:

Get-ChildItem $CertPath

изображение.png

Шаг 2. Проверьте и подготовьте сертификаты

Скачанные файлы имеют формат PEM. Для совместимости с импортом через Windows преобразуем их в формат DER, сохранив результат с расширением .cer.

Выполните:

$CertPath = "C:\certs"

$RootFile = "$CertPath\russian_trusted_root_ca_pem.crt"
$SubFile = "$CertPath\russian_trusted_sub_ca_pem.crt"

foreach ($File in @($RootFile, $SubFile)) {
    if (!(Test-Path $File)) {
        throw "Certificate file not found: $File"
    }
}

$Root = Get-Content $RootFile -Raw
$Sub = Get-Content $SubFile -Raw

$RootBase64 = $Root -replace '-----BEGIN CERTIFICATE-----|-----END CERTIFICATE-----|\s', ''
$SubBase64 = $Sub -replace '-----BEGIN CERTIFICATE-----|-----END CERTIFICATE-----|\s', ''

[IO.File]::WriteAllBytes("$CertPath\russian_trusted_root_ca.cer", [Convert]::FromBase64String($RootBase64))
[IO.File]::WriteAllBytes("$CertPath\russian_trusted_sub_ca.cer", [Convert]::FromBase64String($SubBase64))

Write-Host "Certificates converted successfully"

изображение.png

Шаг 3. Установите сертификаты

Импортируйте корневой сертификат в хранилище доверенных корневых центров, а промежуточный сертификат - в хранилище промежуточных центров сертификации:

Import-Certificate `
  -FilePath "$CertPath\russian_trusted_root_ca.cer" `
  -CertStoreLocation "Cert:\LocalMachine\Root"

Import-Certificate `
  -FilePath "$CertPath\russian_trusted_sub_ca.cer" `
  -CertStoreLocation "Cert:\LocalMachine\CA"

изображение.png

Хранилища используются следующим образом:

  • LocalMachine\Root - доверенные корневые центры сертификации.

  • LocalMachine\CA - промежуточные центры сертификации.

Поскольку используется хранилище локального компьютера, сертификаты будут доступны приложениям, работающим под разными учётными записями, если они используют системное хранилище Windows.

Шаг 4. Проверьте установку

Выполните:

Get-ChildItem Cert:\LocalMachine\Root |
    Where-Object { $_.Thumbprint }

Get-ChildItem Cert:\LocalMachine\CA |
    Where-Object { $_.Thumbprint }

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

Способ 2. Установка через графический интерфейс

Если требуется установить сертификаты вручную, используйте мастер импорта Windows.

Установка корневого сертификата
  1. Откройте https://www.gosuslugi.ru/crt.

  2. Скачайте корневой сертификат для Windows.

  3. Если файл имеет формат PEM, преобразуйте его в DER по инструкции выше либо используйте готовый сертификат в формате .cer.

  4. Нажмите на файл правой кнопкой мыши и выберите «Установить сертификат».

  5. Выберите «Локальный компьютер», если сертификат должен быть доступен системным службам. Для этого потребуются права администратора.

  6. Выберите «Поместить все сертификаты в следующее хранилище».

  7. Укажите «Доверенные корневые центры сертификации».

  8. Завершите импорт.

изображение.png

изображение.png

изображение.png

изображение.png

Установка промежуточного сертификата

Повторите процедуру для промежуточного сертификата, выбрав хранилище «Промежуточные центры сертификации».

После установки перезапустите приложение, в котором возникала ошибка проверки сертификата.

5. Проверка подключения к серверу

После установки сертификатов проверьте TLS-соединение с нужным ресурсом.

Например, в Linux выполните:

openssl s_client \
  -connect sberbank.ru:443 \
  -servername sberbank.ru \
  -verify_return_error </dev/null

В конце вывода найдите строку:

Verify return code: 0 (ok)

изображение.png

Такой результат означает, что OpenSSL успешно проверил цепочку сертификатов соединения с учётом доступного ему хранилища доверия.

Если проверка завершается ошибкой, это не обязательно означает, что сертификаты установлены неправильно. Причиной могут быть проблемы с цепочкой на стороне сервера, отсутствие промежуточного сертификата, особенности хранилища приложения или другая ошибка TLS.

6. Альтернатива: Яндекс Браузер

Если устанавливать сертификаты непосредственно в операционную систему не требуется, можно воспользоваться Яндекс Браузером. В нём уже предусмотрена поддержка российских TLS-сертификатов, включая сертификаты Национального удостоверяющего центра Минцифры. Дополнительная установка сертификатов в Windows для работы сайтов через этот браузер не нужна.

Яндекс предлагает две версии браузера:

Корпоративный вариант позволяет администраторам централизованно управлять настройками браузера и развёртывать его на компьютерах сотрудников.

Использование Яндекс Браузера особенно удобно, если необходимо обеспечить доступ к российским сайтам и онлайн-сервисам без изменения системного хранилища сертификатов.

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

Заключение

Сертификаты Минцифры можно установить в системное хранилище Linux или Windows без ручного копирования содержимого сертификатов. После установки необходимо проверить доступность нужного ресурса и убедиться, что приложение использует обновлённое хранилище доверия.

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