Для установки сертификата:
Область применения: актуальные версии Debian, Ubuntu, Linux Mint, Red Hat Enterprise Linux (RHEL), CentOS Stream, Fedora, Arch Linux и совместимых производных. В старых версиях дистрибутивов команды и расположение хранилищ могут отличаться.
Важно: скачивайте сертификаты с официальной страницы Госуслуг. Установка корневого сертификата расширяет доверие приложений, использующих это хранилище, на цепочки, которые ведут к данному центру сертификации и проходят остальные проверки. Такое доверие не ограничивается одним сайтом.
Russian Trusted Root CA — корневой центр сертификации. Russian Trusted Sub CA — выпускающий, то есть промежуточный центр.
Для проверки HTTPS-соединения обычно достаточно доверенного корневого сертификата, если сервер передаёт необходимые промежуточные сертификаты. Промежуточный сертификат участвует в построении цепочки до корневого. Описание цепочек сертификатов в документации curl.
Команды ниже устанавливают оба сертификата. Если вам нужен только корневой, просто пропустите строки с russian_trusted_sub_ca_pem.crt. Выпускающий сертификат стоит добавлять в доверенное хранилище только тогда, когда этого требует инструкция вашего сервиса и вы понимаете, что это значит: попав в каталог anchors, он становится полноценным доверенным центром сертификации, а не просто промежуточным звеном для построения цепочки. Сможет ли конкретное приложение завершить цепочку на промежуточном CA, зависит от того, как оно проверяет сертификаты. Подробности — в документации p11-kit и правилах проверки OpenSSL.
sudo).ca-certificates и openssl.russian_trusted_root_ca_pem.crt — корневой сертификат;russian_trusted_sub_ca_pem.crt — выпускающий сертификат.Если нужные пакеты отсутствуют, установите их командой для своего дистрибутива:
| Дистрибутив | Команда |
|---|---|
| Debian, Ubuntu, Linux Mint | sudo apt install ca-certificates openssl |
| RHEL, CentOS Stream, Fedora | sudo dnf install ca-certificates openssl |
| Arch Linux | sudo pacman -S --needed ca-certificates ca-certificates-utils openssl |
Папка загрузки зависит от настроек браузера и языка системы. Это может быть ~/Downloads, ~/Загрузки или другая папка.
Перейдите в папку, где находятся распакованные сертификаты. Например:
cd "$HOME/Downloads"
ls -l russian_trusted_root_ca_pem.crt russian_trusted_sub_ca_pem.crt
Если файлы находятся в другой папке или имеют другие имена, измените пути в командах. Если скачан только корневой сертификат, уберите второй файл из команд проверки.
Для Debian, Ubuntu и Linux Mint нужен формат PEM, расширение .crt и один сертификат в каждом файле. Расширение само по себе не определяет формат. Руководство Debian по update-ca-certificates.
Проверьте количество PEM-блоков:
grep -c -- '-----BEGIN CERTIFICATE-----' \
russian_trusted_root_ca_pem.crt russian_trusted_sub_ca_pem.crt
Для этих двух отдельных файлов ожидается значение 1 у каждого. Затем выведите владельца, издателя, срок действия и отпечаток SHA-256:
for cert in russian_trusted_root_ca_pem.crt russian_trusted_sub_ca_pem.crt; do
printf '\n%s\n' "$cert"
openssl x509 -inform PEM -in "$cert" -noout \
-subject -issuer -dates -sha256 -fingerprint
done
Проверьте сроки действия (notBefore и notAfter). У корневого сертификата в примере ожидается имя Russian Trusted Root CA, у выпускающего — Russian Trusted Sub CA.
Учтите, что имя само по себе ничего не доказывает: подлинность гарантирует только получение файла из официального источника. Если удостоверяющий центр публикует отпечатки, сверьте их со своими.
Проверьте, что выпускающий сертификат проходит проверку с использованием скачанного корневого:
openssl verify -CAfile russian_trusted_root_ca_pem.crt \
russian_trusted_sub_ca_pem.crt
Ожидаемый результат:
russian_trusted_sub_ca_pem.crt: OK
Эта команда проверяет сертификат и цепочку, но не устанавливает доверие в системе и по умолчанию не проверяет отзыв сертификатов. Если проверка завершилась ошибкой, сначала выясните её причину. Документация openssl verify.
Если файл уже в PEM, но называется, например, certificate.pem, для Debian и Ubuntu достаточно скопировать его с расширением .crt:
cp certificate.pem certificate.crt
Если сертификат в бинарном формате DER, простого переименования недостаточно. Преобразуйте его в PEM:
openssl x509 -inform DER -in certificate.cer -outform PEM -out certificate.crt
Повторите проверку полученного файла. При установке используйте его фактическое имя. Описание форматов и преобразования в документации Ubuntu.
Выполните только раздел для своего дистрибутива. Команды ниже предполагают, что текущая папка содержит файлы из шага 2.
sudo install -d -m 0755 /usr/local/share/ca-certificates/russian-trusted
sudo install -m 0644 russian_trusted_root_ca_pem.crt \
/usr/local/share/ca-certificates/russian-trusted/
<h1 id="propustite-etu-komandu-esli-ustanavlivaete-tolko-kornevoj-sertifikat.">Пропустите эту команду, если устанавливаете только корневой сертификат.</h1>
sudo install -m 0644 russian_trusted_sub_ca_pem.crt \
/usr/local/share/ca-certificates/russian-trusted/
sudo update-ca-certificates
Утилита включит локальные PEM-сертификаты с расширением .crt в системное хранилище. Сообщение 2 added, 0 removed возможно при первом добавлении двух новых файлов, но не обязательно: результат зависит от уже установленных сертификатов и других изменений. При повторном запуске может быть 0 added, 0 removed. Руководство Debian.
sudo install -d -m 0755 /etc/pki/ca-trust/source/anchors
sudo install -m 0644 russian_trusted_root_ca_pem.crt \
/etc/pki/ca-trust/source/anchors/
<h2 id="propustite-etu-komandu-esli-ustanavlivaete-tolko-kornevoj-sertifikat.-1">Пропустите эту команду, если устанавливаете только корневой сертификат.</h2>
sudo install -m 0644 russian_trusted_sub_ca_pem.crt \
/etc/pki/ca-trust/source/anchors/
sudo update-ca-trust extract
Каталог /etc/pki/ca-trust/source/anchors/ предназначен для локальных доверенных сертификатов. Команда update-ca-trust extract обновляет сформированные хранилища. Документация Red Hat.
sudo install -d -m 0755 /etc/ca-certificates/trust-source/anchors
sudo install -m 0644 russian_trusted_root_ca_pem.crt \
/etc/ca-certificates/trust-source/anchors/
<h1 id="propustite-etu-komandu-esli-ustanavlivaete-tolko-kornevoj-sertifikat.-1-1">Пропустите эту команду, если устанавливаете только корневой сертификат.</h1>
sudo install -m 0644 russian_trusted_sub_ca_pem.crt \
/etc/ca-certificates/trust-source/anchors/
sudo update-ca-trust extract
В Arch Linux для локальных доверенных сертификатов используется каталог /etc/ca-certificates/trust-source/anchors/. Руководство Arch Linux по update-ca-trust.
Выберите один блок для своего дистрибутива и выполните его в текущем терминале.
Debian, Ubuntu, Linux Mint:
CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
RHEL, CentOS Stream, Fedora:
CA_BUNDLE=/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
Arch Linux:
CA_BUNDLE=/etc/ca-certificates/extracted/tls-ca-bundle.pem
Эти пути соответствуют сформированным PEM-бандлам. В RHEL 10 вместо прежнего /etc/pki/tls/certs/ca-bundle.crt следует использовать путь из примера выше. Документация Ubuntu, руководство Arch Linux.
Расшифруйте сведения о сертификатах и найдите нужные имена:
openssl crl2pkcs7 -nocrl -certfile "$CA_BUNDLE" \
| openssl pkcs7 -print_certs -noout \
| grep -E '^subject=.*Russian Trusted'
В выводе должна быть строка владельца (subject) с Russian Trusted Root CA. Если добавлен и выпускающий сертификат, должна появиться строка с Russian Trusted Sub CA.
Имена в PEM-блоках закодированы, поэтому простой поиск grep "Russian Trusted" по исходному бандлу ненадёжен: в некоторых бандлах есть текстовые комментарии с именами, в других их нет. Приведённая команда сначала декодирует сертификаты. Документация openssl crl2pkcs7, документация openssl pkcs7.
Дополнительно, оставаясь в папке со скачанными файлами, проверьте их с использованием системного бандла:
openssl verify -CAfile "$CA_BUNDLE" \
russian_trusted_root_ca_pem.crt russian_trusted_sub_ca_pem.crt
При успешной проверке у каждого файла будет OK. Выпускающий сертификат может пройти эту проверку даже без отдельной установки, если его цепочка ведёт к доверенному корневому: результат OK сам по себе не доказывает наличие выпускающего сертификата в бандле. Эта проверка также не подтверждает настройки отдельного браузера.
Примечание о openssl verify с несколькими файлами: команда обрабатывает каждый файл-аргумент как отдельный целевой сертификат. Для проверки цепочки, состоящей из нескольких сертификатов, используйте опции -untrusted и -trusted.
Если команда trust доступна и p11-kit настроен на системное хранилище вашего дистрибутива:
trust list --filter=ca-anchors \
| grep -i -A 2 'label:.*Russian Trusted'
Ищите нужные имена и признак trust: anchor. Опция --filter=ca-anchors позволяет отфильтровать только доверенные корневые сертификаты. Документация p11-kit.
Если trust не установлен, используйте проверку через OpenSSL; устанавливать p11-kit только ради этой проверки необязательно. Пути, из которых p11-kit читает доверенные сертификаты, задаются при его сборке и настройке. Документация модуля доверия p11-kit.
Полностью закройте и заново запустите браузер и приложения, которым нужен доступ к соответствующим сервисам. Откройте нужный сайт и проверьте сведения о его сертификате, включая цепочку издателей.
Системная установка действует на приложения, использующие это хранилище. У браузеров и других программ могут быть собственные хранилища или особые настройки:
chrome://certificate-manager; в Chromium можно начать с chrome://settings/certificates. При необходимости импортируйте корневой сертификат как доверенный для проверки сайтов. Документация Chrome Certificate Manager, управление сертификатами Chromium в Linux.Открытие одного сайта без предупреждений не доказывает, что браузер использует именно Russian Trusted CA: сайт или адрес после перенаправления может обслуживаться другой цепочкой.
Если установлен curl, можно дополнительно проверить HTTPS-соединение с явно указанным бандлом. Замените адрес в примере на адрес нужного сервиса:
curl -v --cacert "$CA_BUNDLE" --output /dev/null https://sberbank.ru/
Команда проверяет TLS-соединение с указанным адресом и не следует HTTP-перенаправлениям. Ошибка HTTP, например 403, отличается от ошибки проверки сертификата. Не добавляйте -k или --insecure: они отключают проверку сертификата и делают такую проверку бессмысленной. Документация проверки TLS в curl.
Удалите только файлы, добавленные по этой инструкции, и обновите хранилище. Если использовались другие имена или пути, укажите их. Рекурсивное удаление всего каталога не требуется.
sudo rm -f -- \
/usr/local/share/ca-certificates/russian-trusted/russian_trusted_root_ca_pem.crt \
/usr/local/share/ca-certificates/russian-trusted/russian_trusted_sub_ca_pem.crt
sudo update-ca-certificates --fresh
Параметр --fresh пересоздаёт ссылки в /etc/ssl/certs и обновляет бандл после удаления локальных сертификатов. Инструкция Ubuntu по удалению сертификата.
sudo rm -f -- \
/etc/pki/ca-trust/source/anchors/russian_trusted_root_ca_pem.crt \
/etc/pki/ca-trust/source/anchors/russian_trusted_sub_ca_pem.crt
sudo update-ca-trust extract
sudo rm -f -- \
/etc/ca-certificates/trust-source/anchors/russian_trusted_root_ca_pem.crt \
/etc/ca-certificates/trust-source/anchors/russian_trusted_sub_ca_pem.crt
sudo update-ca-trust extract
После изменения исходных файлов RHEL и Arch Linux требуется повторное извлечение хранилищ. Документация Red Hat, руководство Arch Linux.
Если сертификаты дополнительно импортировались в браузер или другое приложение, удалите их и из его собственного хранилища. Перезапустите приложения и повторите проверку. Копия сертификата, установленная в другом месте, может продолжать действовать.
Локальные сертификаты в предназначенных для них каталогах обычно сохраняются при обычном обновлении пакетов. Основные поводы для повторной проверки — истечение срока действия, замена сертификатов удостоверяющим центром, переустановка системы или изменение настроек приложений.
При замене сертификата скачайте актуальный файл из официального источника, проверьте его, замените соответствующий локальный файл и повторно выполните команду обновления хранилища для своего дистрибутива. Не редактируйте сформированный системный бандл вручную: его изменения будут потеряны при очередном обновлении хранилища. Руководство Debian, руководство Arch Linux.