Установка корневого сертификата в Astra Linux
В данной статье рассмотрим, как установить корневой сертификат в системное хранилище доверенных корневых сертификатов. Здесь надо учесть, что браузеры после этого не станут автоматически доверять сайту, сертификат которого выпущен таким центром сертификации, потому что веб-браузеры в Linux используют свои собственные хранилища корневых сертификатов, поэтому будет затронута также тема добавления корневого сертификата в веб-браузеры. Инструкция подойдет не только для Astra Linux, но и для других Debian подобных дистрибутивов.
Установка корневого сертификата в системное хранилище
1. Сертификат должен иметь формат crt. Если формат сертификата отличается, необходимо выполнить его конвертацию. Так, например, для cer-сертификатов:
Если исходный сертификат имеет кодировку DER
openssl x509 -inform DER -in /path/certificate.cer -out certificate.crt
Если исходный сертификат имеет кодировку PEM
openssl x509 -inform PEM -in /path/certificate.cer -out certificate.crt
В параметре out можно сразу указать полный путь сохранения сертификата, в противном случае, он сохранится в текущий каталог.
2. Скопировать полученный сертификат в папку /usr/share/ca-certificates:
sudo cp /path/certificate.crt /usr/share/ca-certificates
вместо /path/certificate.crt подставить свой путь до сертификата и имя сертификата
Есть, однако, мнение, что сертификаты лучше копировать сюда: /usr/local/share/ca-certificates
3. Установить сертификат можно такой командой:
sudo dpkg-reconfigure ca-certificates
Выбрать «Да», нажать «ОК» (Enter), а в следующем окне отметить звездочками сертификаты, которые необходимо установить. При этом, если все успешно, вы должны увидеть информацию о добавлении вашего сертификата. В моем случае выполнялась установка сразу двух сертификатов (2 added)
sudo update-ca-certificates
По идее, делает все что нужно в автоматическом режиме.
По итогу, ваш сертификат должен будет находиться здесь: /etc/ssl/certs
trust list
Короткая команда, которая выведет список доверенных сертификатов. В списке вы должны найти свой сертификат — значит он установился.
Для проверки есть такая конструкция:
awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep -i СЕРТИФИКАТВместо СЕРТИФИКАТ вводим критерий поиска (точное имя сертификата), можно часть имени заменить символом * (например, Digi*) — но в случае со «звездочкой» поиск будет чувствителен к регистру (игнорирует ключ -i), если в имени сертификата есть пробелы, то критерий поиска обязательно нужно взять в кавычки, даже при использовании маски поиска *.
openssl s_client -connect example.site.ru:443 -quiet
Проверка посредством выполнения подключения к сайту. То есть, здесь мы выполняем не поиск по хранилищу сертификатов, а осуществляем подключение к сайту
Вместо example.site.com вводите ваш сайт, на котором нужно проверить работу сертификата.
Если в результате вывода где-то есть verify error, значит есть проблемы с доверием. Нужно детально изучить вывод — на какой сертификат ругается.
curl https://example.site.com --cacert /etc/ssl/certs/ca-certificates.crt
Может потребоваться установка пакета curl. В ответе должен быть получен код страницы — значит все ОК, доверие к сертификату есть, в противном случае, получим ошибку.
Импорт сертификата в профиль пользователя для Chromium-подобных браузеров
Можно автоматизировать данный процесс. Для выполнения команды должна быть установлена утилита certutil.
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "certificate_name" -i certificate_file.crt
certificate_name — имя сертификата
certificate_file — имя файла сертификата, в примере подразумевается, что сертификат расположен в том же каталоге, что и скрипт
После выполнения данной команды, браузеры на Chromium движке под текущим пользователем будут доверять сертификату (Chrome, Chromium, Opera и т.п.).
Отдельно отмечу, что браузер Firefox использует собственную базу сертификатов, которая располагается в другом месте.
Те же самые действия можно проделать и через GUI браузера.
Настройки — Конфиденциальность и безопасность — Безопасность — Настроить сертификаты
Далее импортировать нужный сертификат в разделе «Центры сертификации»