Information Security Squad
stay tune stay secure
🧡 Как установить сертификаты CA на сервере Ubuntu
Возникли проблемы с установкой и распознаванием сертификатов CA на Ubuntu сервере?
Узнайте, как это делается с помощью нескольких быстрых команд.
Если вы администратор сети, веб приложения или безопасности, велики шансы, что вам приходилось (или нужно) иметь дело с сертификатами центра сертификации (CA).
Для тех, кому поручено управление сертификатами CA, вы знаете, насколько это сложно.
Надеюсь, мы сможем успокоить ваш разум (и нервы).
Почему? Потому что управление этими сертификатами на Ubuntu Server не должно быть таким уж сложным.
Давайте сделаем это простым способом.
Я собираюсь продемонстрировать, как установить сертификаты корневого CA на Ubuntu Server 18.04.
Для тех, кто не уверен о чем речь, корневым сертификатом является тот, который был подписан доверенным центром сертификации (например, приобретенным у подобных Globalsign).
У вас могут быть приложения или службы, установленные на сервере Ubuntu, для правильной работы которых требуются авторизованные SSL-соединения.
Такие приложения, как Apache, зависят от CA для обслуживания HTTPS-соединений.
Как только у вас есть CA (и он распознан), вы можете настроить эти приложения и службы на использование файлов сертификатов.
Что вам нужно
Чтобы это работало, вам нужно следующее:
- Запущенный Ubuntu Server 18.04.
- Корневой сертификат, приобретенный у доверенного CA
- Учетная запись пользователя с привилегиями sudo.
Со всем этим наготове, пришло время для установки.
Установка
Первое, что нужно сделать, это установить пакет ca-Certificates, инструмент, который позволяет приложениям на основе SSL проверять подлинность соединений SSL.
Чтобы установить это программное обеспечение, откройте окно терминала и введите команду:
Копирование файлов
Затем нам нужно скопировать этот купленный файл .cer или .crt в нужное место.
Начиная работать с этим файлом сертификата на сервере Ubuntu скопируйте его в нужный каталог с помощью команды:
Где CERTIFICATE — это имя файла CA, который нужно скопировать.
Конвертирование из PEM
Если ваш сертификат представляет собой файл PEM, он должен быть сначала преобразован в формат .crt.
Для этого вы должны использовать команду openssl следующим образом:
Где CERTIFICATE — это имя вашего файла сертификата.
После преобразования файла PEM в формат .crt его можно скопировать в нужный каталог (как показано выше).
Обновите свой сертификат
Последний шаг — обновить ваши сертификаты.
С помощью одной команды вы можете обновить сертификаты и сгенерировать файл ca-certificate.crt (который представляет собой объединенный список всех установленных сертификатов).
Команда для запуска:
И это все, что нужно сделать.
Теперь у вас есть рабочий файл сертификата CA, расположенный в правильном месте, чтобы приложения SSL могли использовать эти CA.
Как добавить сертификат Центра Сертификации (CA) в доверенные в Linux
Как добавить корневой сертификат в доверенные в Linux на уровне системы
Сертификат с расширением .crt можно открыть двойным кликом и просмотреть его содержимое:
Если вы работаете в системе от обычного пользователя (не root), то кнопка «Импортировать» будет недоступна.
Чтобы разблокировать кнопку «Импортировать», выполните следующую команду:
Данный способ может не сработать, поэтому рассмотрим, как добавить доверенные корневые центры сертификации в командной строке.
Суть метода очень проста:
- Добавить свой корневой CA сертификат в папку, предназначенную для таких сертификатов.
- Запустить программу для обновления общесистемного списка сертификатов.
Пути и команды в разных дистрибутивах Linux чуть различаются.
Просмотреть Subject всех корневых CA сертификатов можно уже знакомой командой:
Для демонстрации я добавлю сертификат с Common Name, включающим «HackWare», тогда для проверки, имеется ли сертификат с таким именем среди корневых CA, я могу использовать команду:
Для добавления своего корневого CA в доверенные в Debian, Kali Linux, Linux Mint, Ubuntu и их производных:
1. Проверьте, существует ли директория /usr/local/share/ca-certificates:
Если её ещё нет, то создайте:
Сертификат должен быть в формате PEM (обычно так и есть) и иметь расширение .crt — если расширение вашего сертификата .pem, то достаточно просто поменять на .crt.
2. Скопируйте ваш сертификат командой вида:
3. Запустите следующую команду для обновления общесистемного списка:
Проверим наличие нашего CA сертификата среди доверенных:
Сертификат успешно найден:
Для добавления своего корневого CA в доверенные в Arch Linux, BlackArch и их производных:
1. Выполните команду вида:
2. Обновите общесистемный список доверенных CA:
Чтобы удалить этот сертификат:
Добавление сертификатов в базу данных NSS
Некоторые приложения используют базу данных NSS, и у вас может быть необходимость добавить доверенные CA в неё.
Последующие изменения повлияют только на приложения, использующие базу данных NSS и учитывающие файл /etc/pki/nssdb.
1. Сначала создайте структуру каталогов для системных файлов базы данных NSS:
Затем создайте новый набор файлов базы данных. Пароль нужен для того, чтобы базу данных могли редактировать только люди, которые его знают. Если все пользователи в системе (и с доступом к резервным копиям) заслуживают доверия, этот пароль можно оставить пустым.
2. Убедитесь, что файлы базы данных доступны для чтения всем:
Примечание: вышеприведённые инструкции применимы только в том случае, если пока не существует общесистемного набора файлов базы данных NSS. Если он уже существует, то важно знать пароль для этого набора баз данных (конечно, если он защищён паролем).
3. Теперь, когда доступны файлы базы данных NSS, добавьте сертификат в хранилище следующим образом:
Биты доверия, используемые в приведённом выше примере, помечают сертификат как надёжный для подписи сертификатов, используемых для связи SSL/TLS. Имя (указывается после опции -n), используемое в команде, можно выбрать любое, но убедитесь, что его легко отличить от других сертификатов в магазине.
Аналогичные инструкции можно использовать для включения сертификата только в базу данных NSS конкретного пользователя:
Удаление из файлов базы данных NSS
Чтобы удалить сертификат из любой базы данных NSS, используйте команду certutil следующим образом. В этом примере используется общесистемное расположение базы данных NSS, но его можно легко изменить на пользовательское
Как добавить корневой сертификат в доверенные в Linux в веб браузеры
Chrome, Chromium, Firefox и созданные на их основе веб браузеры доверяют корневым сертификатам, установленным на уровне системы. То есть вам достаточно добавить в доверенные CA сертификат как это показано в предыдущем разделе.
Причём эти браузеры хотя и используют NSS, они игнорируют общесистемные сертификаты NSS, которые можно добавить в файл /etc/pki/nssdb!
Тем не менее приложения, которые используют NSS (такие как Firefox, Thunderbird, Chromium, Chrome) хранят свои списки доверенных сертификатов в файлах cert9.db. Чтобы добавить свой сертификат в каждый из этих файлов можно использовать скрипт.
Сохранить следующий код в файл CAtoCert9.sh:
В этом файле измените значение certfile на имя файла вашего сертификата и значение certname на имя вашего сертификата, сохраните и закройте файл.
Затем запустите его следующим образом:
В результате в домашней папке пользователя будут найдены все файлы cert9.db и в каждый из них будет добавлен указанный CA сертификат.
Вы можете добавить CA сертификаты в графическом интерфейсе каждого браузера.
- В настройках Chrome: Конфиденциальность и безопасность → Безопасность → Настроить сертификаты → Центры сертификации
- В настройках Chromium: Конфиденциальность и безопасность (выбрать «Ещё») → Настроить сертификаты → Центры сертификации
Нажмите кнопку «Импорт»:
Выберите файл с сертификатом.
Укажите, какие полномочия вы даёте этому сертификату:
- В настройках Firefox: Приватность и Защита → Сертификаты → Просмотр сертификатов → Центры сертификации:
Нажмите кнопку «Импортировать»:
Выберите файл с сертификатом.
Укажите, какие полномочия вы даёте этому сертификату:
Для глубокого понимания OpenSSL смотрите также полное руководство: «OpenSSL: принципы работы, создание сертификатов, аудит».