Российские сертификаты Минцифры в Ubuntu: корневой и два выпускающих

На странице сертификатов Госуслуг Минцифры сейчас просит ставить в Linux три файла: корневой Russian Trusted Root CA и два выпускающих, Russian Trusted Sub CA и Russian Trusted Sub CA 2024. Когда я писал эту заметку первый раз, выпускающий был один. Если на Ubuntu сайты банков и госсервисов открываются с ошибкой сертификата, а curl и wget ругаются на цепочку, скорее всего, в системе нет как раз этих файлов.

Сайт Сбербанка, например, сейчас отдаёт сертификат, выпущенный Russian Trusted Sub CA. Без российского корня в системном хранилище curl к нему просто не подключится.

Какие файлы нужны и сколько они живут

  • Russian Trusted Root CA: корневой, действует до 27 февраля 2032 года.
  • Russian Trusted Sub CA: первый выпускающий, действует до 6 марта 2027 года.
  • Russian Trusted Sub CA 2024: второй выпускающий, выпущен в июле 2024 года и действует до 19 июля 2029 года.

Если вы ставили сертификаты по старой инструкции, корень и первый выпускающий у вас уже есть. Достаточно добавить Sub CA 2024, иначе сайты, которые перешли на новый выпускающий сертификат, снова начнут ругаться.

Скачиваем сертификаты

Файлы лежат на gu-st.ru, это хранилище статики Госуслуг. Хотя у них расширение .cer, внутри обычный PEM, так что конвертировать ничего не нужно:

cd ~
wget https://gu-st.ru/content/downloads/Russian_Trusted_Root_CA.cer
wget https://gu-st.ru/content/downloads/Russian_Trusted_Sub_CA.cer
wget https://gu-st.ru/content/downloads/Russian_Trusted_Sub_CA_2024.cer

Старые ссылки вида gu-st.ru/content/lending/russian_trusted_root_ca_pem.crt тоже пока отвечают, но в них нет Sub CA 2024. Лучше брать файлы по ссылкам со страницы Госуслуг.

Кладём в системное хранилище Ubuntu

Главная тонкость: update-ca-certificates подхватывает только файлы с расширением .crt. Поэтому при копировании в /usr/local/share/ca-certificates меняем расширение:

sudo cp Russian_Trusted_Root_CA.cer /usr/local/share/ca-certificates/Russian_Trusted_Root_CA.crt
sudo cp Russian_Trusted_Sub_CA.cer /usr/local/share/ca-certificates/Russian_Trusted_Sub_CA.crt
sudo cp Russian_Trusted_Sub_CA_2024.cer /usr/local/share/ca-certificates/Russian_Trusted_Sub_CA_2024.crt
sudo update-ca-certificates

В конце команда напишет что-то вроде «3 added, 0 removed; done.». Если написано «0 added», проверьте расширение файлов. Те же команды работают в Debian, Linux Mint и Astra Linux.

Проверка

Проще всего проверить через curl на сайте, который работает на российском сертификате:

curl -sI https://www.sberbank.ru | head -1

Если в ответ пришло HTTP/2 200 без ошибки «unable to get local issuer certificate», система доверяет сертификатам Минцифры. Старая проверка через wget --spider тоже работает, просто вывод у curl короче.

Что ещё учесть

  • Системное хранилище используют curl, wget, apt, PHP, Python и большинство консольных утилит.
  • Firefox по умолчанию берёт сертификаты из своего хранилища. Туда их добавляют отдельно: Настройки, Приватность и защита, Сертификаты, Просмотр сертификатов, вкладка Центры сертификации, Импортировать.
  • Chrome и Chromium в Linux используют свою базу NSS. Если после установки браузер всё ещё ругается, сертификаты импортируют в его настройках безопасности.
  • Первый выпускающий сертификат истекает 6 марта 2027 года. Ближе к этой дате стоит снова заглянуть на страницу Госуслуг: скорее всего, там появятся новые файлы.

В итоге для Ubuntu нужно три файла Минцифры, а не два, как было раньше: корневой, Sub CA и Sub CA 2024. Скачали, скопировали в /usr/local/share/ca-certificates с расширением .crt, запустили update-ca-certificates и проверили curl-ом. Браузеры с собственным хранилищем настраиваются отдельно.

Источники и ссылки


Комментарии загружаются…