Системное хранилище корневых сертификатов
Недавно столкнулся с задачей, что нужно в программе(на С) подтягивать СА-сертификаты.
Писал под Ubunta, поэтому в коде указал стационарный адрес к списку корневых: /etc/ssl/certs/ca-certificates.crt
Все работало, пока не настала необходимость столкнуться с Centos7. Погуглив — нашел, что список корневых сидит в /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt. Поменял код — все отлично.
Подскажите, есть ли какая-то общая команда в Linux, которая отвечает за подгрузку списка корневых сертификатов?
Буду благодарен за любую информацию)
Встроенное в ОС хранилище сертификатов
Добрый вечер! Столкнулся с задачей работы со встроенным в ОС хранилищем сертификатов(формат.
Ошибка: Сертификат для подписания манифеста не найден в хранилище сертификатов.
Появилась эта ошибка при попытке откомпилировать проект. Кто-нибудь знает, что это и как с этим.
Представление корневых деревьев
требуется вывести на экран изображение двоичного дерева как показано на прикрепленном рисунке.
Поиск корневых каталогов
Здравствуйте, all! Есть задача, помогите с идеями для алгоритма. Таблица содержит поля: Имя.
Где в Linux хранятся корневые сертификаты Центров Сертификации (CA)
Общесистемные корневые 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 сертификатов в системе:
Эти сертификаты используются утилитоми 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 и производные установка делается так:
Google Chrome / Chromium
Как уже было сказано, при работе на Linux, Google Chrome использует библиотеку Mozilla Network Security Services (NSS) для выполнения верификации сертификатов.
Корневые 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. Теперь выполните команду вида:
2. Затем запустите команду:
Вы увидите доверенные корневые сертификаты, которые использует Google Chrome в Linux.
Также вы можете просмотреть корневые CA сертификаты в настройках браузера:
Конфиденциальность и безопасность (выбрать «Ещё») → Настроить сертификаты → Центры сертификации, на английском это Privacy and security → Manage certificates → Authorities.
Firefox
Поскольку Firefox принадлежит Mozilla, то этот веб браузер, конечно, также использует Mozilla Network Security Services (NSS).
Стандартными расположениями папок с базами данных NSS являются:
/.pki/nssdb (на уровне пользователей)
Firefox НЕ использует ни одно из этих стандартных расположений, база данных хранится в профиле пользователя, который имеет общий вид
Посмотреть корневые сертификаты CA которые использует Firefox в Linux можно следующей командой:
У Firefox-esr это папка:
Также вы можете просмотреть корневые CA сертификаты в настройках браузера:
Приватность и Защита → Сертификаты → Просмотр сертификатов → Центры сертификации:
Thunderbird
Чтобы просмотреть, каким CA доверяет Thunderbird:
Чтобы найти все файлы cert9.db выполните команду:
Для глубокого понимания OpenSSL смотрите также полное руководство: «OpenSSL: принципы работы, создание сертификатов, аудит».
Не определяется сертификат под Linux
Форум Рутокен → Рутокен для Linux → Не определяется сертификат под Linux
Сообщений 9
#1 Тема от ilya.ermolin 2016-12-28 19:56:40
Не определяется сертификат под Linux
Пробую прочитать список сертификатов с токена, записанные под Windows.
К сожалению получаю пустой список.
При этом в Windows сертификат на этом же токене виден:
Подскажите пожалуйста с чем может быть связана проблема и как её можно решить?
Готов предоставить необходимые дополнительные данные при необходимости
#2 Ответ от Анатолий Убушаев 2016-12-29 10:17:03
Re: Не определяется сертификат под Linux
Добрый день, ilya.ermolin!
Данный сертификат КриптоПро, для взаимодействия с ним в Ubuntu, требуется установленный КриптоПро CSP для Linux.
Как установить и настроить, подробности по ссылке http://developer.rutoken.ru/pages/viewp … >
#3 Ответ от ilya.ermolin 2016-12-29 10:17:58
Re: Не определяется сертификат под Linux
Спасибо за информацию — попробую. По результатам отпишу.
#4 Ответ от ilya.ermolin 2016-12-29 11:04:51
Re: Не определяется сертификат под Linux
Установил КриптоПро согласно инструкции.
Такого файла в дистрибутиве не нашел — установил cprocsp-rdr-rutoken-64-3.6.1-4.x86_64.rpm
Возможно стоит дополнить инструкцию (даже вопросы к ней такие были).
КриптоПро видит сертификат:
При этом при доступен через библиотеку rtPKCS11ECP.so сертификаты так и не отображаются.
Есть ли техническая возможность организовать такое отображение под Linux?
Под Windows сертификат виден, но насколько я понимаю через CAPI интерфейс КриптоПро а не как pkcs11 устройство.
#5 Ответ от Анатолий Убушаев 2016-12-29 12:03:11 (2016-12-29 12:05:38 отредактировано Анатолий Убушаев)
Re: Не определяется сертификат под Linux
Установил КриптоПро согласно инструкции.
Такого файла в дистрибутиве не нашел — установил cprocsp-rdr-rutoken-64-3.6.1-4.x86_64.rpm
Возможно стоит дополнить инструкцию (даже вопросы к ней такие были).
При этом при доступен через библиотеку rtPKCS11ECP.so сертификаты так и не отображаются.
Есть ли техническая возможность организовать такое отображение под Linux?
Под Windows сертификат виден, но насколько я понимаю через CAPI интерфейс КриптоПро а не как pkcs11 устройство.
Для того, чтобы просмотреть/установить сертификаты воспользуйтесь утилитой управления сертификатами certmgr
Документация к продукту КриптоПро CSP по ссылке https://www.cryptopro.ru/support/docs
Если нужно решение для просмотра сертификата на токене в графическом виде (GUI), можете воспользоваться утилитой XCA, указав в настройках путь к библиотеке librtpkcs11ecp.so, после раздел «Token» станет активным и в «Manage secure token» откроется список с сертификатами.
Если нужен терминал, то используйте pkcs11-tool, пример:
Выводим список объектов на токене
Находим интересующий вас «Certificate Object» и копируем его ID