Astra linux хранилище сертификатов

Где в Linux хранятся корневые сертификаты Центров Сертификации (CA)

Консолидированный файл, включающий в себя все корневые сертификаты CA операционной системы, находится в файле /etc/ssl/certs/ca-certificates.crt. Этот файл может быть символической ссылкой на фактическое расположение сертификатов в файлах /etc/ssl/cert.pem или /etc/ca-certificates/extracted/tls-ca-bundle.pem.

Корневые CA сертификаты в виде отдельных файлов расположены в директории /etc/ssl/certs, в этой директории могут быть ссылки на фактическое расположение сертификатов, например, в /etc/ca-certificates/extracted/cadir/.

Для просмотра Subject всех корневых CA сертификатов в системе:

awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/;' < /etc/ssl/certs/ca-certificates.crt

Эти сертификаты используются утилитоми curl, wget и другими. Веб-браузеры Chromium и Firefox используют свои собственные хранилища корневых CA сертификатов.

Чтобы узнать, где веб браузеры хранять корневые CA сертификаты в Linux, нам нужно познакомиться с NSS.

Mozilla Network Security Services (NSS)

Network Security Services (NSS) это набор библиотек, разработанных для поддержки кросс-платформенной разработки защищенных клиентских и серверных приложений. Приложения построенные с использование NSS могут использовать SSL v2 и v3, TLS, PKCS#5, PKCS#7, PKCS#11, PKCS#12, S/MIME, сертификаты X.509 v3 и другие стандарты обеспечения безопасности.

В отличие от OpenSSL, NSS использует файлы базы данных в качестве хранилища сертификатов.

NSS начинается с жёстко закодированного списка доверенных сертификатов CA внутри файла libnssckbi.so. Этот список можно просмотреть из любого приложения, использующего NSS, способного отображать (и манипулировать) хранилищем доверенных сертификатов, например, Chrome-совместимые или Firefox-совместимые браузеры.

Некоторые приложения, использующие библиотеку NSS, используют хранилище сертификатов, отличное от рекомендованного. Собственный Firefox от Mozilla является ярким примером этого.

В вашем дистрибутиве скорее всего уже установлен пакет NSS, в некоторых дистрибутивах он называется libnss3 (Debian и производные) в некоторых — nss (Arch Linux, Gentoo и производные).

Если вы хотите просматривать и изменять хранилища сертификатов NSS, то понадобиться утилита certutil. В Arch Linux эта утилита входит в пакет nss и, следовательно, предустановлена в Arch Linux. А в Debian и производные установка делается так:

sudo apt install libnss3-tools

Google Chrome / Chromium

Как уже было сказано, при работе на Linux, Google Chrome использует библиотеку Mozilla Network Security Services (NSS) для выполнения верификации сертификатов.

Читайте также:  Linux creating new users

Корневые CA сертификаты, которые добавил пользователь, хранятся в файле ~/.pki/nssdb/cert9.db, их можно просмотреть командой:

Поскольку Chrome не может удалить сертификаты из хранилища NSS, то если вы отключите некоторые из них в настройках веб браузера (Privacy and security → Manage certificates → Authorities), то в том же файле, где хранятся добавленные пользователем корневые CA сертификаты, будут сохранены изменения о полномочиях отключённого сертификата:

Используемые в Google Chrome / Chromium корневые CA сертификаты в Linux можно посмотреть следующим причудливым способом:

1. Найдите расположение файла libnssckbi.so (как было сказано в предыдущем разделе, в нём NSS хранит доверенные корневые сертификаты):

Примеры расположений этого файла:

  • /usr/lib/libnssckbi.so
  • /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so

2. Теперь выполните команду вида:

ln -s /ПУТЬ/ДО/libnssckbi.so ~/.pki/nssdb
ln -s /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so ~/.pki/nssdb

2. Затем запустите команду:

certutil -L -d sql:$HOME/.pki/nssdb/ -h 'Builtin Object Token'

Вы увидите доверенные корневые сертификаты, которые использует Google Chrome в Linux.

Также вы можете просмотреть корневые CA сертификаты в настройках браузера:

Конфиденциальность и безопасность (выбрать «Ещё») → Настроить сертификаты → Центры сертификации, на английском это Privacy and security → Manage certificates → Authorities.

Firefox

Поскольку Firefox принадлежит Mozilla, то этот веб браузер, конечно, также использует Mozilla Network Security Services (NSS).

Стандартными расположениями папок с базами данных NSS являются:

  • ~/.pki/nssdb (на уровне пользователей)
  • /etc/pki/nssdb (на общесистемном уровне, может отсутствовать)

Firefox НЕ использует ни одно из этих стандартных расположений, база данных хранится в профиле пользователя, который имеет общий вид ~/.mozilla/firefox/СЛУЧАЙНЫЕ-БУКВЫ-ЦИФРЫ.default/cert9.db, например, ~/.mozilla/firefox/3k0r4loh.default/cert9.db.

Посмотреть корневые сертификаты CA которые использует Firefox в Linux можно следующей командой:

certutil -L -d ~/.mozilla/firefox/*.default/

У Firefox-esr это папка:

certutil -L -d ~/.mozilla/firefox/*.default-esr/

Также вы можете просмотреть корневые CA сертификаты в настройках браузера:

Читайте также:  Установка viber на линукс

Приватность и Защита → Сертификаты → Просмотр сертификатов → Центры сертификации:

Thunderbird

Чтобы просмотреть, каким CA доверяет Thunderbird:

certutil -L -d ~/.thunderbird/*.default/

Чтобы найти все файлы cert9.db выполните команду:

Для глубокого понимания OpenSSL смотрите также полное руководство: «OpenSSL: принципы работы, создание сертификатов, аудит».

Связанные статьи:

Источник

Windows admin blog

Полезные команды cmd, powershell, администрирование, фичи и решения проблем на win/winserver

Установка корневого сертификата в 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

По идее, делает все что нужно в автоматическом режиме.

Читайте также:  Linux export env variable

По итогу, ваш сертификат должен будет находиться здесь: /etc/ssl/certs

Проверка установки

Короткая команда, которая выведет список доверенных сертификатов. В списке вы должны найти свой сертификат — значит он установился.

Для проверки есть такая конструкция:

awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/;' < /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 браузера.

Настройки — Конфиденциальность и безопасность — Безопасность — Настроить сертификаты

Далее импортировать нужный сертификат в разделе «Центры сертификации»

Источник

Оцените статью
Adblock
detector