Без установленных сертификатов Национального удостоверяющего центра Минцифры России пользователям будут недоступны большинство отечественных государственных и банковских онлайн-сервисов, например, популярные онлайн-сервисы СберБанка или ВТБ. Для доступа к таким онлайн-сервисам пользователи операционной системы Debian могут установить и использовать Яндекс.Браузер, в который требуемые сертификаты уже встроены. Яндекс.Браузер доступен в виде deb-пакета, поэтому с его установкой у пользователей не должно возникнуть проблем. Однако если нет желания менять привычный веб-браузер и устанавливать в систему дополнительное программное обеспечение, предпочтительным будет вариант с самостоятельной установкой сертификатов. Разберёмся с тем, как это сделать.
Для начала предлагаю посмотреть результат выполнение HTTP-запроса к веб-сайту СберБанка при помощи утилиты cURL в системе без установленных российских сертификатов.
curl -I https://www.sberbank.ru
В результате cURL сообщает о проблеме с сертификатами, а значит их всё-таки надо установить и после установки проверить результат.

Корневой и выпускающий сертификаты в формате PEM доступны для загрузки со специальной страницы портала государственных услуг Российской Федерации. Загрузить сертификаты можно вручную или при помощи утилиты Wget.
Для загрузки с помощью Wget понадобятся прямые ссылки на файлы сертификатов. На момент публикации файлы сертификатов доступны по адресам:
- корневой сертификат: https://gu-st.ru/content/lending/russian_trusted_root_ca_pem.crt
- выпускающий сертификат: https://gu-st.ru/content/lending/russian_trusted_sub_ca_pem.crt
В будущем эти адреса могут измениться. Поэтому при возникновении проблемы с загрузкой файлов сертификатов, следует проверить адреса.
Для примера оба сертификата будут сохранены в директорию ~/Downloads. Далее, во всех примерах команд, будут использоваться именно эти файлы.
wget -P ~/Downloads https://gu-st.ru/content/lending/russian_trusted_root_ca_pem.crt
wget -P ~/Downloads https://gu-st.ru/content/lending/russian_trusted_sub_ca_pem.crt
Установка сохранённых сертификатов в системное хранилище сертификатов Debian выполняется путём копирования их файлов в директорию /usr/local/share/ca-certificates. Для этого понадобится получить права суперпользователя.
sudo cp ~/Downloads/russian_trusted_{root_ca_pem.crt,sub_ca_pem.crt} /usr/local/share/ca-certificates
После копирования файлов сертификатов, надо обновить хранилище сертификатов для перестройки списка доступных сертификатов. Это делает утилита update-ca-certificates, запущенная от имени суперпользователя.
sudo update-ca-certificates -v
Завершив обновление хранилища сертификатов, при желании можно проверить доверие сертификатам при помощи утилиты openssl.
openssl verify russian_trusted_root_ca_pem.crt
openssl verify russian_trusted_sub_ca_pem.crt
На этом установка сертификатов в системное хранилище сертификатов Debian закончена. Теперь все программы, использующие системное хранилище сертификатов, будут использовать установленные сертификаты, и будут доверять веб-сайтам, защищённым сертификатами, выданным НУЦ Минцифры России.
Как теперь отработает утилита cURL?
curl -I https://www.sberbank.ru
Запрос выполнен успешно, значит проблема с сертификатами устранена.

Для примера на следующем скриншоте открыта страница проверки сертификатов НУЦ Минцифры России на веб-сайте СберБанка в веб-браузере GNOME Web.

Однако ни Mozilla Firefox, ни Google Chrome, ни Microsoft Edge, ни другие веб-браузеры на основе Chromium, не пройдут эту проверку, потому что не используют системное хранилище сертификатов Debian.
Для этих веб-браузеров можно импортировать сертификаты вручную через служебные страницы настроек. Это простой вариант решения задачи, но если он не подходит, следует воспользоваться утилитой certutil, входящей в состав пакета libnss3-tools. При помощи утилиты certutil сертификаты добавляются в базы данных сертификатов, которые используют эти веб-браузеры.
Если утилита не установлена, потребуется установить пакет libnss3-tools.
sudo apt install libnss3-tools
Актуальные на момент публикации версии веб-браузера Mozilla Firefox 107.0 и почтового клиента Mozilla Thunderbird 102.5 используют базы данных сертификатов в файлах cert9.db в директориях профилей пользователей. Веб-браузеры на основе Chromium также используют файл cert9.db, но из директории ~/.pki/nssdb/cert9.db.
Найти все файлы cert9.db в домашней директории пользователя можно при помощи утилиты find.
find ~/ -name "cert9.db"
Теперь, зная расположение нужного файла базы данных сертификатов, при помощи утилиты certutil в него можно добавить все требуемые сертификаты. Для примера, если файл базы данных сертификатов для веб-браузера Mozilla Firefox расположен по пути ~/.mozilla/firefox/kopstl44.default-esr/cert9.db, то добавить в него сертификаты можно при помощи следующих команд.
certutil -A -n "Russian Trusted Root CA" -t "TCu,Cu,Tu" -i ~/Downloads/russian_trusted_root_ca_pem.crt -d "sql:${HOME}/.mozilla/firefox/kopstl44.default-esr/"
certutil -A -n "Russian Trusted Sub CA" -t "TCu,Cu,Tu" -i ~/Downloads/russian_trusted_sub_ca_pem.crt -d "sql:${HOME}/.mozilla/firefox/kopstl44.default-esr/"
Результат выполнения - сертификаты установлены в Mozilla Firefox. Проверка сертификатов на веб-сайте СберБанка проходит успешно.

Для того, чтобы не производить действия над каждым файлом базы данных сертификатов отдельно, можно упростить себе работу и написать сценарий Bash.
#!/bin/bash
certDir="${HOME}/Downloads"
certRootFile="${certDir}/russian_trusted_root_ca_pem.crt"
certSubFile="${certDir}/russian_trusted_sub_ca_pem.crt"
certRootName="Russian Trusted Root CA"
certSubName="Russian Trusted Sub CA"
for certDB in $(find ~/ -name "cert9.db")
do
echo "*** Process database: ${certDB}"
certDBDir=$(dirname ${certDB})
certutil -A -n "${certRootName}" -t "TCu,Cu,Tu" -i "${certRootFile}" -d "sql:${certDBDir}"
certutil -A -n "${certSubName}" -t "TCu,Cu,Tu" -i "${certSubFile}" -d "sql:${certDBDir}"
done
После завершения работы сценария во все найденные в домашней директории пользователя базы данных сертификатов cert9.db будут добавлены загруженные ранее сертификаты. Все веб-браузеры и другие программы, использующие эти базы данных сертификатов, будут работать с установленными в них сертификатами.
Удаление установленных сертификатов
Раз сертификаты были установлены, значит их можно и удалить. Причины для этого могут быть разными. Например, часть пользователей в силу собственных убеждений не доверяют отечественным средствам безопасности и видят в установленных сертификатов потенциальную угрозу своей конфиденциальности. На сколько эти опасения оправданы - тема отдельного разговора и конспирологических теорий.
Чтобы удалить сертификаты, установленные в системное хранилище сертификатов Debian, надо удалить файлы сертификатов и обновить хранилище сертификатов.
sudo rm /usr/local/share/ca-certificates/{russian_trusted_root_ca_pem.crt,russian_trusted_sub_ca_pem.crt}
sudo update-ca-certificates -f
Если установка сертификатов в веб-браузеры была выполнена вручную, их так же можно удалить вручную через служебные страницы настроек. Для удаления сертификатов, установленных автоматически в базы данных сертификатов в файлы cert9.db, следует снова воспользоваться утилитой certutil.
certutil -D -n "Russian Trusted Root CA" -t "TCu,Cu,Tu" -d "sql:${HOME}/.mozilla/firefox/kopstl44.default-esr/"
certutil -D -n "Russian Trusted Sub CA" -t "TCu,Cu,Tu" -d "sql:${HOME}/.mozilla/firefox/kopstl44.default-esr/"
Для массового удаления сертификатов из баз данных сертификатов можно написать сценарий Bash, аналогичный приведённому ранее сценарию для установки сертификатов.
#!/bin/bash
certRootName="Russian Trusted Root CA"
certSubName="Russian Trusted Sub CA"
for certDB in $(find ~/ -name "cert9.db")
do
echo "*** Process database: ${certDB}"
certDBDir=$(dirname ${certDB})
certutil -D -n "${certRootName}" -d "sql:${certDBDir}"
certutil -D -n "${certSubName}" -d "sql:${certDBDir}"
done
Рассмотренные способы установки российских корневых сертификатов подходят не только для пользователей операционной системы Debian, но и любых других Linux операционных систем, основанных на Debian, например, Ubuntu, KDE Neon и других.
Автоматизация процесса установки и удаления сертификатов с помощью сценариев Bash позволяет пользователям, сомневающимся в безопасности постоянного присутствия в системе российских корневых сертификатов, добиться использования сертификатов по требованию, без необходимости устанавливать отдельный браузер или создавать отдельную учётную запись пользователя.