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

Обновлено: 04.07.2024

Эта инструкция была выполнена на операционных системах: Debian 10, Debian 9, Ubuntu 20.10, Ubuntu 20.04, Ubuntu 19.10.

Создание конфигурации OpenSSL

Давайте начнем с этого важного раздела. Нам нужно создать файл конфигурации для OpenSSL, выполнив команду в терминале:

Скопируйте и вставьте следующую подготовленную конфигурацию в новый файл, где DNS.1 — это название вашего сервера (укажите DNS.2, если вам нужна поддержка поддоменов):

Сохраняем изменения и закрываем файл.

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

Мы будем использовать корневой центр сертификации (ЦС) для создания всех SSL-сертификатов. Но сначала нам нужно создать корневой сертификат. Давайте создадим приватный ключ rootCA.key, выполнив команду в терминале:

или используя парольную фразу

Теперь давайте создадим файл сертификата rootCA.pem, используя приватный ключ rootCA.key, выполнив команду в терминале:

В процессе генерации сертификата будет задано несколько вопросов. Вы можете пропустить их:

Создание корневого центра сертификации

Создание SSL-сертификатов

Уже можно создавать новые сертификаты, используя корневой сертификат rootCA.pem. Но сначала нам нужно создать приватный ключ и ключ (CSR) для запроса подписи, выполнив команду в терминале:

Теперь мы создадим наш файл сертификата, используя корневой центр сертификации, который мы создали ранее, запустив команду в терминале:

Создание SSL-сертификатов

Настройка Nginx для использования SSL

Сохраняем изменения и закрываем файл. Проверим конфигурацию на валидность, выполнив команду в терминале:

Теперь применим изменения конфигурации, выполнив команду в терминале:

Добавление центра сертификации в браузер

Чтобы браузер доверял созданным сертификатам, вы должны добавить свой корневой центр сертификации rootCA.pem в список доверенных центров сертификации браузера:

  • Google Chrome
    Настройки -> Дополнительные -> Конфиденциальность и безопасность -> Настроить сертификаты -> Центры сертификации -> Импорт (выберите файл rootCA.pem и установите все настройки доверия)
  • Mozilla Firefox
    Настройки -> Настройки и Защита -> Сертификаты -> Просмотр сертификатов -> Центры сертификации -> Импортировать (выберите файл rootCA.pem и установите все настройки доверия)
  • Opera
    Настройки -> Дополнительно -> Конфиденциальность и безопасность -> Настроить сертификаты -> Издатели -> Импортировать (выберите файл rootCA.pem и установите все настройки доверия)

Добавление центра сертификации в браузер

Выберите корневой центр сертификации rootCA.pem

Установите все параметры доверия для корневого центра сертификации rootCA.pem

Центр сертификации будет называться как "Internet Widgits Pty Ltd". Если вы захотите отредактировать настройки доверия или удалить ЦС, ищите по этому названию.

Тестирование шифрования

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

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

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

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

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

apt install ca-certificates

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

yum install ca-certificates

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

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

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

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

dpkg -i ca-certificates_*_all.deb

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

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

-----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-----

Добавление в Linux корневых сертификатов X.509 локального корпоративного Центра сертификации


Некоторые службы и приложения в Linux могут использовать в своей работе сетевые соединения, защищаемые с помощью SSL/TLS. Иногда требуется, чтобы цифровой сертификат, используемый для защиты соединений и предоставляемый каким-то удалённым сервером из локальной сети, принимался локальной Linux-системой как доверенный. Для этого в Linux-систему может потребоваться добавить корневой сертификат Центра сертификации (ЦС), которым были выданы сертификаты, используемые для защиты соединений. Типичный пример, когда локальная Linux-система для механизмов аутентификации и авторизации подключается с помощью ldap-клиента (например OpenLDAP) к контроллеру домена Active Directory (AD) и контроллер домена предоставляет ldap-клиенту для защиты соединения сертификат, выданным локальным корпоративным ЦС.

Здесь мы рассмотрим простой пример того, как в Linux-систему добавить корневые сертификаты локального корпоративного ЦС.

О том, как «выуживать» корневые сертификаты ЦС, которыми подписаны сертификаты контроллеров домена AD, я приводил пример ранее. Если под руками есть доменная Windows-машина, то можно выгрузить корневой сертификат из оснастки управления сертификатами из раздела корневых сертификатов доверенных ЦС. Если корневой сертификат не один, а несколько (цепочка), то каждый корневой сертификат цепочки выгрузим в файл в кодировке Base-64, сразу присвоив им расширение PEM вместо CER


В результате такой выгрузки в нашем примере получится пара файлов AD-RootCA.pem (корневой сертификат ЦС верхнего уровня) и AD-SubCA.pem (корневой сертификат подчинённого ЦС). Скопируем полученные pem-файлы на наш Linux-сервер, например с помощью утилиты pscp, во временный каталог.

Перейдём на консоль Linux-сервера и переместим файлы коневых сертификатов из временного каталога в каталог, который мы создадим специально для хранения наших корневых сертификатов и подправим на эти сертификаты права (если требуется)

Теперь обработаем содержимое каталога с нашими сертификатами утилитой OpenSSL - c_rehash:

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

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

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

В качестве примера рассмотрим клиента OpenLDAP, для которого можно указать созданный нами каталог в конфигурационном файле ldap.conf ( /etc/ldap/ldap.conf ) в дополнительной опции TLS_CACERTDIR, таким образом, чтобы эта опция шла после имеющейся по умолчанию опции TLS_CACERT (подробнее об этих опциях можно найти в man ldap.conf ):

Примечание.
В Debian GNU/Linux параметр TLS_CACERTDIR может игнорироваться, о чём сказано в man ldap.conf .

TLS_CACERTDIR <path>
Specifies the path of a directory that contains Certificate Authority certificates in separate individual files. The TLS_CACERT is always used before TLS_CACERTDIR. This parameter is ignored with GnuTLS. On Debian openldap is linked against GnuTLS…

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

Собрать все нужные доверенные корневые сертификаты Центров сертификации в бандл можно простой склейкой содерживого PAM-файлов в колировке Base-64:

Соответственно, применительно к ранее упомянутому клиенту OpenLDAP в Debian GNU/Linux настройка конфигурации будет такой:


Автор первичной редакции:
Алексей Максимов
Время публикации: 25.03.2017 17:36

1. Если у вас возникает ошибка доступа к сайтам, в связи с истечением сертифика IdenTrust DST Root CA X3 на старых системах.


2. Если вы получаете ошибки git:

3. Ошибка CERTIFICATE_VERIFY_FAILED

ОС Ubuntu 16.04

Пропишите новые сертификаты в конфигурационном файле:

После выполнения команды должно вывести информацию об успешной установки трех новых сертификатов:

Сборка всех сертификатов находится в файле /etc/ssl/certs/ca-certificates.crt

ОС Centos 7

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

Сборка всех сертификатов находится в файле /etc/ssl/certs/ca-bundle.crt

Перезапуск сервисов

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

Windows 7

Контрольные суммы сертификата:

MD5: 118ecd744d864b32ffdb48b2e29f1d7f
SHA1: 4de9627fe9ace4acce27eaa1a0837cd3db55704b
SHA256: 22b557a27055b33606b6559f37703928d3e4ad79f110b407d04986e1843543d1


3.Откройте пункт Конфиденциальность и Безопасность и выберите раздел безопасность


4. Откройте пункт Настроить сертификаты


5. Выберите пункт Доверенные корневые центры сертификации


6. Нажмите на кнопку Импорт

7. Нажмите обзор и выберите загруженный файл.


8. В выпадающем списке нужно выбрать все файлы




8. Убедитесь что установка идет в Доверенные корневые центры сертификации.

Читайте также: