Linux update ca certificates

Содержание
  1. Обновление корневых сертификатов на Linux
  2. Установка из репозитория
  3. Загрузка пакета с сертификатами
  4. Установка вручную
  5. 🧡 Как установить сертификаты CA на сервере Ubuntu
  6. Что вам нужно
  7. Установка
  8. Копирование файлов
  9. Конвертирование из PEM
  10. Обновите свой сертификат
  11. Создание и настройка центра сертификации (ЦС) в Ubuntu 20.04
  12. Введение
  13. Предварительные требования
  14. Шаг 1 — Установка Easy-RSA
  15. Шаг 2 — Подготовка директории для инфраструктуры открытых ключей
  16. Шаг 3 — Создание Центра сертификации
  17. Шаг 4 — Распространение публичного сертификата Центра сертификации
  18. (Необязательно) — Создание запросов на подписание сертификатов и отзыв сертификатов
  19. (Необязательно) — Создание и подписание образца запроса сертификата
  20. (Необязательно) — Подписание CSR
  21. (Необязательно) — Отзыв сертификата
  22. Отзыв сертификата
  23. Генерирование списка отзыва сертификатов
  24. Передача списка отзыва сертификатов
  25. Обновление сервисов, поддерживающих CRL
  26. Изучение и проверка содержимого списка CRL
  27. Заключение

Обновление корневых сертификатов на Linux

От корневых сертификатов в системе может зависеть правильная работа при обращении к ресурсам, которые работают по зашифрованному каналу связи. Если данные сертификаты устареют, мы можем столкнуться с рядом проблем:

  • Не открываются или выдают предупреждение безопасности некоторые (или все) сайты, работающие по https.
  • Некорректная работа отдельных приложений.
  • Ошибки при подключении по ssh.

Это пример ошибок, который не претендует на свою полному. Чаще всего, проблемы встречаются на системах, снятых с обслуживания.

Установка из репозитория

Самый простой способ, который нужно попробовать, установить сертификаты из официального репозитория системы. В зависимости от ее типа, наши команды будут немного отличаться.

а) для систем на базе DEB (Debian, Ubuntu, Mint):

apt install ca-certificates

б) для систем на базе RPM (Rocky Linux, CentOS):

yum install ca-certificates

Если нам повезет и в репозитории будут обновленные корневые центры, наша работа закончена. Иначе, устанавливаем сертификаты вручную.

Загрузка пакета с сертификатами

Установка из репозитория может не дать нужного эффекта, если в нем находятся не самые свежие сертификаты или наша система сильно устарела или не имеет выхода в Интернет.

В этом случае нам нужно загрузить пакет с корневыми сертификатами вручную. Разберем пример на системе Ubuntu. В официальном репозитории или в поисковой системе находим пакет для загрузки, например, по ссылке ftp.ru.debian.org/debian/pool/main/c/ca-certificates копируем ссылку на файл с последней версией сертификатов, и загружаем его на наш компьютер:

Полученный пакет устанавливаем в системе:

dpkg -i ca-certificates_20210119_all.deb

И обновляем корневые сертификаты:

Установка вручную

Выше рассмотрены самые удобные способы обновления корневых сертификатов. Но мы можем столкнуться с ситуацией, когда в предоставляемых официальных пакетах не окажется обновленного сертификата. Например, на момент написания данной инструкции у систем на базе Deb не оказалось нового сертификата для Let’s Encrypt, а старый закончил свое действие 30 сентября 2021 года.

В данном случае, мы можем установить любой нужный нам сертификат руками. Для этого скачала находим его и копируем — приведем пример с Let’s Encrypt. На странице letsencrypt.org/ru/certificates мы можем увидеть ссылки на корневые сертификаты. Допустим, нам нужен Let’s Encrypt Authority X3 (Signed by ISRG Root X1), который доступен по ссылке letsencrypt.org/certs/letsencryptauthorityx3.pem.txt. Копируем последовательность и создаем файл на компьютере:

——BEGIN CERTIFICATE——
MIIFjTCCA3WgAwIBAgIRANOxciY0IzLc9AUoUSrsnGowDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTYxMDA2MTU0MzU1
WhcNMjExMDA2MTU0MzU1WjBKMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRob3JpdHkgWDMwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCc0wzwWuUuR7dyXTeDs2hjMOrX
NSYZJeG9vjXxcJIvt7hLQQWrqZ41CFjssSrEaIcLo+N15Obzp2JxunmBYB/XkZqf
89B4Z3HIaQ6Vkc/+5pnpYDxIzH7KTXcSJJ1HG1rrueweNwAcnKx7pwXqzkrrvUHl
Npi5y/1tPJZo3yMqQpAMhnRnyH+lmrhSYRQTP2XpgofL2/oOVvaGifOFP5eGr7Dc
Gu9rDZUWfcQroGWymQQ2dYBrrErzG5BJeC+ilk8qICUpBMZ0wNAxzY8xOJUWuqgz
uEPxsR/DMH+ieTETPS02+OP88jNquTkxxa/EjQ0dZBYzqvqEKbbUC8DYfcOTAgMB
AAGjggFnMIIBYzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADBU
BgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIB
FiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMB0GA1UdDgQWBBSo
SmpjBH3duubRObemRWXv86jsoTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js
LnJvb3QteDEubGV0c2VuY3J5cHQub3JnMHIGCCsGAQUFBwEBBGYwZDAwBggrBgEF
BQcwAYYkaHR0cDovL29jc3Aucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcvMDAGCCsG
AQUFBzAChiRodHRwOi8vY2VydC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZy8wHwYD
VR0jBBgwFoAUebRZ5nu25eQBc4AIiMgaWPbpm24wDQYJKoZIhvcNAQELBQADggIB
ABnPdSA0LTqmRf/Q1eaM2jLonG4bQdEnqOJQ8nCqxOeTRrToEKtwT++36gTSlBGx
A/5dut82jJQ2jxN8RI8L9QFXrWi4xXnA2EqA10yjHiR6H9cj6MFiOnb5In1eWsRM
UM2v3e9tNsCAgBukPHAg1lQh07rvFKm/Bz9BCjaxorALINUfZ9DD64j2igLIxle2
DPxW8dI/F2loHMjXZjqG8RkqZUdoxtID5+90FgsGIfkMpqgRS05f4zPbCEHqCXl1
eO5HyELTgcVlLXXQDgAWnRzut1hFJeczY1tjQQno6f6s+nMydLN26WuU4s3UYvOu
OsUxRlJu7TSRHqDC3lSE5XggVkzdaPkuKGQbGpny+01/47hfXXNB7HntWNZ6N2Vw
p7G6OfY+YQrZwIaQmhrIqJZuigsrbe3W+gdn5ykE9+Ky0VgVUsfxo52mwFYs1JKY
2PGDuWx8M6DlS6qQkvHaRUo0FMd8TsSlbF0/v965qGFKhSDeQoMpYnwcmQilRh/0
ayLThlHLN81gSkJjVrPI0Y8xCVPB4twb1PFUd2fPM3sA1tJ83sZ5v8vgFv2yofKR
PB0t6JzUA81mSqM3kxl5e+IZwhYAyO0OTg3/fs8HqGTNKd9BqoUwSRBzp06JMg5b
rUCGwbCUDI0mxadJ3Bz4WxR6fyNpBK2yAinWEsikxqEt
——END CERTIFICATE——

Открываем на редактирование файл:

И добавляем в него строку с указанием на созданный файл:

Источник

🧡 Как установить сертификаты 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.

Источник

Создание и настройка центра сертификации (ЦС) в Ubuntu 20.04

Published on May 21, 2020

Введение

Центр сертификации (ЦС) — это служба, отвечающая за выдачу цифровых сертификатов удостоверения личности в Интернете. Хотя публичные ЦС часто используются для подтверждения подлинности сайтов и других общедоступных служб, для закрытых групп и частных служб обычно используются частные ЦС.

Создание частного ЦС позволит вам настраивать, тестировать и запускать программы, требующие шифрованного канала связи между клиентом и сервером. Частный ЦС позволяет выпускать сертификаты для пользователей, серверов или отдельных программ и служб в вашей инфраструктуре.

Существует множество программ для Linux, использующих частные ЦС, в том числе OpenVPN и Puppet. Также вы можете настроить веб-сервер для использования сертификатов, выпущенных частным ЦС, с целью обеспечить соответствие сред разработки и тестирования и производственных сред, где используется служба TLS для шифрования соединений.

Читайте также:  Feedbacks about windows 10

В этом руководстве мы узнаем, как настроить частный центр сертификации на сервере Ubuntu 20.04 и как сгенерировать и подписать сертификат тестирования, используя ваш новый ЦС. Также вы научитесь импортировать публичный сертификат сервера ЦС в хранилище сертификатов операционной системы, чтобы проверять цепочку доверия между ЦС и удаленными серверами или пользователями. Кроме того, вы научитесь отзывать сертификаты и распространять Список отзыва сертификатов, чтобы службы на основе вашего ЦС могли использовать только уполномоченные пользователи и системы.

Предварительные требования

Для выполнения этого обучающего руководства вам потребуется доступ к серверу Ubuntu 20.04 для хостинга вашего сервера ЦС. Перед началом прохождения руководства вам нужно будет настроить пользователя без прав root с привилегиями sudo . Вы можете следовать указаниям руководства по начальной настройке сервера Ubuntu 20.04 для настройки пользователя с надлежащими разрешениями. Настоящее обучающее руководство предусматривает использование брандмауэра, описание настройки которого приведено в доступном по ссылке руководстве.

В настоящем обучающем руководстве мы будем называть его сервер ЦС.

Сервер ЦС должен представлять собой отдельную систему. Она будет использоваться только для импорта, подписания и отзыва запросов сертификатов. На ней не должны работать никакие другие службы, и в идеале ее следует отключать от сети или полностью отключать в периоды, когда вы активно не работаете с ЦС.

Примечание. Последний раздел этого обучающего руководства необязательный. Из него вы сможете узнать о подписании и отзыве сертификатов. Если вы решите выполнять эти практические шаги, то вам потребуется второй сервер Ubuntu 20.04, либо вы также можете использовать свой локальный компьютер с Linux, где запущен Ubuntu или Debian, или их дистрибутивы (того или другого).

Шаг 1 — Установка Easy-RSA

Первая задача этого обучающего модуля заключается в установке набора скриптов easy-rsa для запуска на сервере ЦС. Мы будем использовать инструмент управления ЦС easy-rsa для генерирования частного ключа и публичного корневого сертификата, с помощью которых вы будете подписывать запросы клиентов и серверов, использующих ваш ЦС.

Войдите на сервер ЦС от имени пользователя без прав root с привилегиями sudo, созданного на начальном этапе установке, и запустите следующую команду:

Вам будет предложено загрузить пакет и установить его. Нажмите y , чтобы подтвердить установку пакета.

Теперь у вас есть все необходимое для настройки и использования Easy-RSA. На следующем шаге мы создадим инфраструктуру открытых ключей, а затем приступим к созданию Центра сертификации.

Шаг 2 — Подготовка директории для инфраструктуры открытых ключей

Мы установили easy-rsa и теперь займемся созданием каркаса инфраструктуры открытых ключей (PKI) на сервере ЦС. Убедитесь, что вы вошли в систему как пользователь без прав root, и создайте директорию easy-rsa . Не используйте sudo для запуска следующих команд, поскольку обычные пользователи должны иметь возможность управления и взаимодействия с ЦС без повышенного уровня прав.

Будет создана новая директория easy-rsa в домашней папке. Мы используем эту директорию для создания символических ссылок, указывающих на файлы пакета easy-rsa , установленные на предыдущем шаге. Эти файлы находятся в папке /usr/share/easy-rsa на сервере ЦС.

Создайте символические ссылки с помощью команды ln :

Примечание. Хотя другие руководства могут предписывать скопировать файлы пакета easy-rsa в директорию PKI, в этом обучающем руководстве мы используем подход на основе символических ссылок. Таким образом, любые изменения пакета easy-rsa будут автоматически отражаться в ваших скриптах PKI.

Чтобы ограничить доступ к созданной директории PKI, используйте команду chmod для предоставления доступа к ней только владельцу:

Затем инициализируйте PKI в директории easy-rsa :

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

Шаг 3 — Создание Центра сертификации

Прежде чем создавать закрытый ключ и сертификат ЦС, необходимо создать файл с именем vars и заполнить его значениями по умолчанию. Используйте команду cd для перехода в директорию easy-rsa , а затем создайте и отредактируйте файл vars с помощью nano или другого предпочитаемого текстового редактора:

Открыв файл, вставьте следующие строки и измените каждое выделенное значение для отражения информации о вашей организации. При этом важно, чтобы ни одно значение не оставалось пустым:

После завершения редактирования сохраните и закройте файл. Если вы используете nano , вы можете сделать это, нажав CTRL+X , а затем Y и ENTER для подтверждения. Теперь вы готовы к созданию ЦС.

Для создания корневой пары открытого и закрытого ключей для Центра сертификации необходимо запустить команду ./easy-rsa еще раз, но уже с опцией build-ca :

Вы увидите несколько строк с указанием версии OpenSSL, а затем вам будет предложено ввести фразу-пароль для пары ключей. Используйте надежную фразу-пароль и запишите ее в безопасном месте. Вам нужно будет вводить фразу-пароль каждый раз, когда вам потребуется взаимодействовать с ЦС, в частности при подписании или отзыве сертификата.

Также вам будет предложено подтвердить обычное имя (CN) вашего ЦС. CN — это имя, которое будет использоваться для данного компьютера в контексте Центра сертификации. Вы можете использовать любую строку символов как обычное имя ЦС, но для простоты нажмите ENTER, чтобы использовать имя по умолчанию.

Примечание. Если вы не хотите вводить пароль при каждом взаимодействии с ЦС, вы можете запустить команду build-ca с опцией nopass :

Теперь у нас имеется два важных файла,

/easy-rsa/pki/private/ca.key . Эти файлы соответствуют публичному и частному компонентам Центра сертификации.

ca.crt — файл публичного сертификата ЦС. Пользователи, серверы и клиенты будут использовать этот сертификат для подтверждения единой сети доверия. Копия этого файла должна иметься у всех пользователей и серверов, использующих ваш ЦС. Все стороны будут использовать публичный сертификат для подтверждения подлинности системы и предотвращения атак через посредника.

ca.key — закрытый ключ, который ЦС будет использовать для подписания сертификатов серверов и клиентов. Если злоумышленник получит доступ к ЦС и файлу ca.key , вам нужно будет уничтожить ЦС. Поэтому файл ca.key должен храниться только на компьютере ЦС, и для дополнительной безопасности компьютер ЦС следует выключать, когда он не используется для подписания запросов сертификатов.

Мы установили ЦС и готовы использовать его для подписания запросов сертификатов и отзыва сертификатов.

Шаг 4 — Распространение публичного сертификата Центра сертификации

Мы настроили ЦС и можем использовать его в качестве корня доверия для любых систем, которые захотим настроить для этого. Сертификат ЦС можно добавлять на серверы OpenVPN, веб-серверы, почтовые серверы и т. д. Каждый пользователь или сервер, которому потребуется подтвердить подлинность другого пользователя или сервера в вашей сети, должен иметь копию файла ca.crt , импортированную в хранилище сертификатов операционной системы.

Читайте также:  Windows movie maker windows как открыть

Чтобы импортировать публичный сертификат ЦС во вторую систему Linux, например на сервер или локальный компьютер, нужно предварительно получить копию файла ca.crt с сервера ЦС. Вы можете использовать команду cat для ее вывода в терминал, а затем скопировать и вставить ее в файл на втором компьютере, который импортирует сертификат. Также вы можете использовать scp , rsync и другие подобные инструменты для передачи файла между системами. Мы используем для копирования и вставки текстовый редактор nano , поскольку этот вариант подойдет для всех систем.

Запустите следующую команду на сервере ЦС от имени пользователя без прав root:

На терминале появится примерно следующее:

Скопируйте все, включая строки ——BEGIN CERTIFICATE—— и ——END CERTIFICATE—— и символы дефиса.

Используйте nano или предпочитаемый текстовый редактор на второй системе Linux, чтобы открыть файл с именем /tmp/ca.crt :

Вставьте в редактор содержимое, скопированное вами из сервера ЦС. После завершения редактирования сохраните и закройте файл. Если вы используете nano , вы можете сделать это, нажав CTRL+X , а затем Y и ENTER для подтверждения.

Теперь у нас имеется копия файла ca.crt на второй системе Linux, и мы можем импортировать сертификат в хранилище сертификатов операционной системы.

На системах с Ubuntu и Debian выполните следующие команды в качестве вашего пользователя без прав root для импорта сертификата:

Чтобы импортировать сертификат сервера ЦС в систему на базе CentOS, Fedora или RedHat, скопируйте и вставьте содержимое файла в файл /tmp/ca.crt , как описано в предыдущем примере. Затем скопируйте сертификат в директорию /etc/pki/ca-trust/source/anchors/ и запустите команду update-ca-trust .

Теперь вторая система Linux будет доверять любому сертификату, подписанному нашим сервером ЦС.

Примечание. Если вы используете ЦС с веб-серверами и браузер Firefox, вам нужно будет импортировать публичный сертификат ca.crt в Firefox напрямую. Firefox не использует локальное хранилище сертификатов операционной системы. Подробную информацию о добавлении сертификата ЦС в Firefox можно найти в статье поддержки Mozilla «Настройка Центров сертификации (ЦС) в Firefox».

Если вы используете ЦС для интеграции со средой Windows или настольными компьютерами, ознакомьтесь с документацией по использованию certutil.exe для установки сертификата ЦС.

Если вы используете это обучающее руководство для выполнения предварительных требований другого обучающего руководства или уже знакомы с процессом подписания и отзыва сертификатов, вы можете остановиться здесь. Если вы хотите узнать больше о подписании и отзыве сертификатов, в следующем необязательном разделе вы найдете подробное описание каждого из этих процессов.

(Необязательно) — Создание запросов на подписание сертификатов и отзыв сертификатов

Следующие разделы этого обучающего руководства являются необязательными. Если вы выполнили все предыдущие шаги, у вас имеется полностью настроенный и работающий Центр сертификации, который вы сможете использовать для выполнения других обучающих руководств. Вы можете импортировать файл ca.crt вашего ЦС и проверить сертификаты в вашей сети, которые были подписаны вашим ЦС.

Если вы хотите потренироваться и узнать больше о том, как подписывать запросы сертификатов и отзывать сертификаты, из этих необязательных разделов вы сможете узнать больше о каждом из этих процессов.

(Необязательно) — Создание и подписание образца запроса сертификата

Мы настроили ЦС для использования и теперь можем попробовать сгенерировать закрытый ключ и запрос сертификата, чтобы познакомиться с процессом подписания и распространения.

Запрос на подписание сертификата (CSR) состоит из трех частей, а именно открытого ключа, идентификационной информации запрашивающей системы и подписи запроса, создаваемой на основе закрытого ключа запрашивающей системы. Закрытый ключ остается секретным, и его можно будет использовать для шифрования информации, которую сможет расшифровать любой пользователь с подписанным открытым сертификатом.

Следующие шаги будут выполняться на вашей второй системе с Ubuntu или Debian, либо с дистрибутивом одного из них. Это может быть другой удаленный сервер или локальная система Linux, например ноутбук или настольный компьютер. Поскольку по умолчанию easy-rsa доступна не на всех системах, мы используем инструмент openssl для создания тренировочного закрытого ключа и сертификата.

openssl обычно устанавливается по умолчанию в большинстве дистрибутивов Linux, но для уверенности стоит запустить в системе следующую команду:

Когда вам будет предложено установить openssl , введите y , чтобы продолжить выполнение установки. Теперь вы готовы создать тренировочный CSR с помощью openssl .

В первую очередь для создания CSR необходимо сгенерировать закрытый ключ. Чтобы создать закрытый ключ с помощью openssl , создайте директорию practice-csr и сгенерируйте ключ в этой директории. Мы будем выполнять этот запрос на фиктивном сервере под названием sammy-server , в отличие от случая создания сертификата для идентификации пользователя или другого ЦС.

Теперь у нас имеется закрытый ключ, с помощью которого можно создать CSR, используя утилиту openssl . Вам будет предложено заполнить ряд полей, в том числе указать страну, область и город. Вы можете ввести . , если хотите оставить поле пустым, но для реальных CSR лучше использовать правильные значения при указании своего расположения и организации:

Если вы хотите, чтобы эти значения добавлялись автоматически при вызове openssl , а не запрашивались через интерактивный диалог, вы можете передать аргумент -subj в OpenSSL. Обязательно измените выделенные значения для соответствия вашему расположению, организации и имени сервера:

Чтобы проверить содержимое CSR, вы можете прочитать файл запроса с помощью команды openssl и проверить поля внутри него:

Когда вас устроит тема запроса тренировочного сертификата, скопируйте файл sammy-server.req на сервер ЦС с помощью scp :

На этом шаге вы сгенерировали запрос подписи сертификата для вымышленного сервера sammy-server . В реальной ситуации запрос может исходить от веб-сервера разработки, которому требуется сертификат TLS для тестирования, или от сервера OpenVPN, который запрашивает сертификат, чтобы пользователи могли подключиться к VPN. На следующем шаге мы перейдем к подписанию запроса на подписание сертификата с использованием закрытого ключа сервера ЦС.

(Необязательно) — Подписание CSR

На предыдущем шаге мы создали запрос тренировочного сертификата и ключ вымышленного сервера. Мы скопировали его в директорию /tmp на сервере ЦС, моделируя процесс, который мы бы использовали при отправке запросов CSR на подпись реальными клиентами или серверами.

Продолжим рассматривать вымышленный сценарий. Теперь серверу ЦС необходимо импортировать тренировочный сертификат и подписать его. Когда ЦС подтвердит сертификат и отправит ответ серверу, клиенты, доверяющие Центру сертификации, смогут также доверять новому сертификату.

Поскольку мы будем работать внутри инфраструктуры PKI в ЦС, где доступна утилита easy-rsa , мы будем использовать утилиту easy-rsa для большего удобства в отличие от использования openssl , как мы делали в предыдущем примере.

Первым шагом для подписания вымышленного CSR будет импорт запроса сертификата с помощью скрипта easy-rsa :

Теперь вы можете подписать запрос, запустив скрипт easyrsa с опцией sign-req , указав затем тип запроса и общее имя, включаемое в CSR. Запрос может иметь тип client , server или ca . Поскольку мы тренируемся с сертификатом для вымышленного сервера, нужно использовать тип запроса server :

Читайте также:  Установка службы windows команда

В результатах вам будет предложено подтвердить, что запрос поступил из надежного источника. Для подтверждения введите yes и нажмите ENTER :

Если вы зашифровали ключ ЦС, вам будет предложено ввести пароль.

Выполнив эти шаги, мы подписали CSR sammy-server.req с помощью закрытого ключа сервера ЦС в директории /home/sammy/easy-rsa/pki/private/ca.key . Полученный файл sammy-server.crt содержит открытый ключ шифрования тренировочного сервера, а также новую подпись от сервера ЦС. Подпись сообщает всем, кто доверяет ЦС, что они также могут доверять сертификату sammy-server .

Если бы это был запрос веб-сервера, сервера VPN или другого реального сервера, последним шагом на сервере ЦС стало бы распространение новых файлов sammy-server.crt и ca.crt с сервера ЦС на удаленный сервер, отправивший запрос CSR:

На этом этапе выпущенный сертификат можно было бы использовать с веб-сервером, сервером VPN, инструментом управления конфигурацией, СУБД, системой аутентификации клиентов и т. п.

(Необязательно) — Отзыв сертификата

Иногда сертификат требуется отозвать, чтобы пользователь или сервер не могли его использовать. Например, это может потребоваться в случае кражи ноутбука, взлома веб-сервера, увольнения сотрудника, расторжения договора с подрядчиком и т. д.

Далее кратко описана процедура отзыва сертификата:

  1. Для отзыва сертификата используется команда ./easyrsa revoke client_name .
  2. Сгенерируйте новый CRL с помощью команды ./easyrsa gen-crl .
  3. Переместите обновленный файл crl.pem на сервер или серверы, использующие ваш ЦС, а на этих системах скопируйте этот файл в директорию или директории программ, которые на него ссылаются.
  4. Перезапустите все службы, использующие ваш ЦС и файл CRL.

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

Отзыв сертификата

Для отзыва сертификата перейдите в директорию easy-rsa на вашем сервере ЦС:

Затем запустите скрипт easyrsa с опцией revoke , указав имя клиента, у которого хотите отозвать сертификат: В соответствии с приведенным выше практическим примером, сертификат имеет обычное имя sammy-server :

Система предложит вам подтвердить отзыв сертификата. Введите yes :

Обратите внимание на выделенное значение в строке Revoking Certificate . Это значение представляет собой уникальный серийный номер отзываемого сертификата. Данное значение потребуется вам, если вы захотите просмотреть список отзыва и убедиться в наличии в нем сертификата, как описано в последнем шаге этого раздела.

После подтверждения действия ЦС выполнит отзыв сертификата. Однако удаленные системы, использующие ЦС, не имеют возможности проверить отзыв сертификатов. Пользователи и серверы смогут использовать этот сертификат, пока список отзыва сертификатов ЦС (CRL) не будет распространен по всем системам, использующим данный ЦС.

На следующем шаге мы сгенерируем CRL или обновим существующий файл crl.pem .

Генерирование списка отзыва сертификатов

Мы отозвали сертификат, и теперь нам нужно обновить список отозванных сертификатов на сервере ЦС. После получения обновленного списка отзыва вы сможете определить, какие пользователи и системы имеют действующие сертификаты в вашем ЦС.

Чтобы сгенерировать CRL, запустите команду easy-rsa с опцией gen-crl , оставаясь в директории

Если вы использовали фразу-пароль при создании файла ca.key , вам будет предложено ввести ее. Команда gen-crl сгенерирует файл с именем crl.pem , содержащий обновленный список отозванных сертификатов для этого ЦС.

Далее вам нужно будет передавать обновленный файл crl.pem на все серверы и клиенты, использующие этот ЦС, при каждом запуске команды gen-crl . В противном случае клиенты и системы сохранят доступ к сервисам и системам, использующим ваш ЦС, так как данным сервисам нужно сообщить об отзыве сертификата.

Передача списка отзыва сертификатов

Мы сгенерировали список CRL на сервере ЦС, и теперь нам нужно передать его на удаленные системы, использующие ваш ЦС. Для передачи этого файла на ваши серверы можно использовать команду scp .

Примечание. В этом обучающем руководстве описывается генерирование и распространение списка CRL вручную. Хотя существуют более надежные автоматические методы распространения и проверки списков отзыва (например OCSP-Stapling), настройка этих методов не входит в состав данного обучающего руководства.

Войдите на сервер ЦС как пользователь без прав root и запустите следующую команду, указав IP-адрес или имя DNS вашего сервера вместо your_server_ip :

Теперь файл передан на удаленную систему и нужно только отправить новую копию списка отзыва во все сервисы.

Обновление сервисов, поддерживающих CRL

Перечень необходимых шагов для обновления сервисов, использующих файл crl.pem , не входит в содержание этого обучающего руководства. Обычно требуется скопировать файл crl.pem в место, где сервис ожидает его найти, а затем перезапустить сервис с помощью systemctl .

После обновления сервиса с указанием нового файла crl.pem этот сервис будет отклонять запросы подключения от клиентов и серверов, на которых используется отозванный сертификат.

Изучение и проверка содержимого списка CRL

Если вы хотите изучить содержимое файла CRL, в том числе с целью подтверждения списка отозванных сертификатов, выполните следующую команду openssl в директории easy-rsa на вашем сервере ЦС:

Также вы можете запустить эту команду на любом сервере или на любой системе, где установлен инструмент openssl с копией файла crl.pem . Например, если вы перенесли файл crl.pem на вторую систему и хотите убедиться в отзыве сертификата sammy-server , вы можете использовать следующий синтаксис команды openssl , указав записанный при отзыве сертификата серийный номер вместо выделенного здесь:

Обратите внимание на использование команды grep для проверки уникального серийного номера, записанного на шаге отзыва. Теперь вы можете подтвердить содержимое списка отзыва сертификатов на любой системе, использующей его для ограничения доступа к пользователям и сервисам.

Заключение

В этом обучающем руководстве вы создали частный Центр сертификации на отдельном сервере Ubuntu 20.04 с помощью пакета Easy-RSA. Мы узнали, как работает модель доверия между сторонами, полагающимися на ЦС. Также мы создали и подписали запрос на подписание сертификата (CSR) для вымышленного сервера и научились отзывать сертификаты. Наконец, мы научились генерировать и распространять списки отзыва сертификатов (CRL) на любых системах, использующих наш ЦС, чтобы предотвратить доступ к сервисам пользователей и серверов, которым он не разрешен.

Теперь вы можете выдавать сертификаты пользователям и использовать их в OpenVPN и других подобных сервисах. Также вы можете использовать свой ЦС для настройки веб-серверов разработки и тестирования с помощью сертификатов, чтобы защитить свои непроизводственные среды. Использование ЦС с сертификатами TLS во время разработки поможет обеспечить максимальное соответствие вашего кода и сред разработки и тестирования производственной среде.

Если вам требуется дополнительная информация об использовании OpenSSL, вам будет полезно наше обучающее руководство Основы OpenSSL: работа с сертификатами SSL, закрытыми ключами и запросами CSR, которое поможет вам лучше познакомиться с основами OpenSSL.

Источник

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