Linux install certificate trusted ca

Установка сертификатов в Ubuntu

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

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

Что нам понадобится?

Я хочу показать на примере как сделать сертификат доверенным в Ubuntu. Для этого можно создать свой центр сертификации CA с помощью EasyRSA, создать и подписать SSL сертификат, как это описано в статье про создание сертификатов OpenSSL. Далее использовать этот сертификат для домена localhost в Apache. Таким образом у вас получится три файла:

  • ca.crt — корневой сертификат центра сертификации;
  • localhost.crt — сертификат сайта подписанный центром сертификации;
  • localhost.key — ключ сертификата сайта.

Активируйте файл виртуального хоста Apache для сайта по умолчанию с помощью такой команды:

Далее откройте этот файл и найдите такие строки:

SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

Для параметра SSLCertificateFile надо передать путь к сертификату сайта, например, localhost.crt, а для SSLCertificateKeyFile — ключу сертификата сайта. Например, localhost.key. Если сертификаты находятся в папке /etc/apache/ssl, то конфигуация будет выглядеть вот так:

SSLCertificateFile /etc/apache/ssl/localhost.crt
SSLCertificateKeyFile /etc/apache/ssl/localhost.key

После этого нужно перезапустить Apache:

sudo systemctl restart apache2

Теперь у вас всё готово для того чтобы выполнить всё описанное ниже в своей системе.

Установка сертификатов в Ubuntu

1. Установка в системе

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

Читайте также:  Disk dump in linux

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

И так, у вас есть сертификат ca.crt. Для того чтобы система считала его доверенным, нужно скопировать его в папку /usr/local/share/ca-certificates:

cp ./ca.crt /usr/local/share/ca-certificates/losstca.crt

После этого необходимо выполнить такую команду:

После этого можно проверить что система воспринимает сертификат как доверенный выполнив команду curl:

Но этот способ будет работать только для тех программ, которые используют системное хранилище доверенных сертификатов. Веб-браузеры, такие как Firefox и Google Chrome имеют собственные хранилища сертификатов и не используют хранилище системы, поэтому в каждом браузере нужно импортировать сертификаты отдельно. Иначе вы будете получать такую ошибку:

Chrome, Firefox, Thunderbird используют nssdb для работы с сертификатами. Это значит что вы можете импортировать сертификаты как в графическом интерфейсе браузера, так и в терминале, с помощью утилиты certutil. Давайте рассмотрим как это сделать. Давайте рассмотрим как выполняется установка сертификата в Ubuntu.

2. Установка в Google Chrome

Для того чтобы добавить сертификат в Google Chrome или Chromium в графическом интерфейсе откройте настройки из главного меню:

Перейдите в Конфиденциальность и безопасность -> Безопасность -> Настроить сертификаты:

В открывшемся окне перейдите на вкладку Центры сертификации:

Здесь необходимо нажать кнопку Импорт и выбрать файл корневого сертификата:

Далее надо настроить параметры доверия. Поскольку сейчас сертификат будет использоваться для подтверждения подлинности сайтов, то можно оставить только первый пункт:

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

В командной строке всё тоже довольно просто. Для работы с сертификатами вам понадобится пакет libnss3-tools, установите его с помощью команды:

sudo apt install libnss3-tools

База данных сертификатов Google Chrome находится в папке ~/.pki/nssdb. Вы можете посмотреть доступные сертификаты командой:

Синтаксис команды для добавления сертификата следующий:

$ certutil -d путь/к/базе/данных -A -t «настройки_доверия» -n «имя» -i «/путь/к/файлу»

Обратите внимание на настройки доверия. Существует три группы атрибутов доверия:

Каждая из групп может содержать такие атрибуты:

  • p — валидный пир;
  • P — доверенный пир;
  • c — валидный центр сертификации;
  • C — доверенный центр сертификации;
  • T — доверенный центр сертификации для авторизации клиентов.

Для SSL сертификатов можно достаточно такой последовательности «TC,,». То есть атрибуты T и C для SSL и ничего для всего остального. Вся команда для импорта ca.crt будет выглядеть вот так:

certutil -d sql:~/.pki/nssdb -A -t «TC,,» -n «Losst CA» -i ./ca.crt

Читайте также:  Топ офисов для linux

После этого вы снова можете посмотреть список сертификатов для того чтобы убедится что всё хорошо:

Сертификат есть и после этого браузер будет считать его доверенным. Сертификаты добавленные в графическом интерфейсе тоже добавляются сюда. Теперь вы знаете как выполняется установка корневых сертификатов Ubuntu.

3. Установка в Firefox

В Firefox всё немного сложнее. Тут нет централизованного хранилища сертификатов, а поэтому их придется добавлять для каждого профиля отдельно, что в графическом интерфейсе, что в командной строке. Для того чтобы добавить сертификат в графическом интерфейсе откройте Настройки в главном меню:

Далее перейдите в раздел Защита и безопасность и найдите там пункт Сертификаты. Здесь надо нажать кнопку Посмотреть сертификаты:

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

На этом установка SSL сертификата в Firefox завершена. Если вы хотите добавить сертификат в командной строке, то необходимо добавить его во все профили. Профили находятся в папке ~/.mozilla/firefox/. В данном примере, есть два профиля и только один из них заполнен:

Файлы nssdb находятся прямо в папке профиля, поэтому можно просто передать эту папку в certutil. Например, для просмотра списка сертификатов выполните:

certutil -d ~/.mozilla/firefox/k9z8sttc.default-release/ -L

Для добавления сертификата используйте такую команду подставив свой путь к папке профиля:

certutil -d ~/.mozilla/firefox/k9z8sttc.default-release/ -A -t «TC,,» -n «Losst» -i ./ca.crt

После этого полученный сертификат появится в списке.

Обратите внимание, что такой способ работает для Firefox, установленного как .deb пакет. Если у вас Firefox, установленный с помощью пакетного менеджера snap, то этот метод может не работать.

Для Firefox есть ещё один способ добавить сертификаты из системы автоматически без использования certutil. Это загрузка сертификатов с помощью политики. Возможно вы слышали про опцию security.enterprise_roots.enabled в about:config. Она работает только в Windows и MacOS но не в Linux. Однако, можно создать файл политики папке /usr/lib/firefox/distribution/ и там прописать какие сертификаты следует загрузить. По умолчанию Firefox будет искать сертификаты таких каталогах:

В самом файле надо указать имена файлов сертификатов если они находятся в одной из этих папок или полный путь к ним. Например, скопируйте сертификат CA в папку /usr/lib/mozilla/certificates:

cp ~/easy-rsa-ca/ca.crt /usr/lib/mozilla/certificates/losst.crt

Поддерживаются как ASCII сертификаты (CRT/PEM), так и двоичные (DER). Затем создайте файл политики со следующем содержимым:

sudo vi /usr/lib/firefox/distribution/policies.json

Перезапустите браузер и после этого Firefox должен начать видеть ваш сертификат.

Читайте также:  Installing mysql workbench linux

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

User : Grawity/Adding a trusted CA certificate

Warning: Do not put files directly in /etc/ssl/certs . It is not enough, as Java & GnuTLS won’t see any certificates installed this way.

Personal – NSS (Chromium, Firefox)

Chromium, Firefox, Thunderbird, Evolution, SeaMonkey use NSS for retrieving trusted CAs.

Arch’s (and Fedora’s) NSS packages are integrated with p11-kit, so they should automatically pick up any certificates used system-wide. But if you prefer (or if your distro uses «pure» NSS), you can install certificates into your own browser profile as well – use certutil for this:

certutil -d database -A -i myCA.cert -n "Honest Achmed's CA" -t C,,

Chromium and Evolution use the «shared» database at -d «sql:$HOME/.pki/nssdb» .

For Firefox, Thunderbird, and SeaMonkey, specify the browser’s own profile directory (e.g. -d ~/.mozilla/firefox/ov6jazas.default ).

System-wide – Arch, Fedora (p11-kit)

Currently Arch Linux uses p11-kit from Fedora, which has more features (e.g. explicit distrusts) than the older scripts from Debian. To import a trust anchor using p11-kit, do:

The certificate will be written to /etc/ca-certificates/trust-source/myCA.p11-kit and the «legacy» directories automatically updated.

If you get «no configured writable location» or a similar error, import the CA manually:

  1. Copy the certificate to the /etc/ca-certificates/trust-source/anchors directory.
  2. Run update-ca-trust as root.

For more information, see the update-ca-trust(8) manual page.

Fedora

Same as above, but the general location is /etc/pki/ca-trust/source (and the manual installation path is /etc/pki/ca-trust/source/anchors ).

System-wide – Debian, Ubuntu (update-ca-certificates)

Warning: These instructions are for non-Arch distributions. They do not apply to Arch Linux.

The Debian-style update-ca-certificates requires certificates in PEM format (the text format with BEGIN CERTIFICATE headers). If you have a file in binary (DER) format, use openssl x509 to convert it:

openssl x509 -inform DER < myCA.crt > myCA_pem.crt
  1. Copy the certificate to the /usr/local/share/ca-certificates directory (mkdir if needed). The file name must end with .crt .
  2. Run update-ca-certificates as root.

For more information, see the update-ca-certificates(8) manual page.

  • This page was last edited on 6 October 2022, at 06:29.
  • Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.
  • Privacy policy
  • About ArchWiki
  • Disclaimers

Источник

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