Linux update ca certificates

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

Thank you for reading this post, don’t forget to subscribe!

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

  • Не откры­ва­ют­ся или выда­ют пре­ду­пре­жде­ние без­опас­но­сти неко­то­рые (или все) сай­ты, рабо­та­ю­щие по 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 года.

Читайте также:  Назначить права всем папкам linux

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

Источник

Linux update ca certificates

NAME

SYNOPSIS

update-ca-certificates [options]

DESCRIPTION

This manual page documents briefly the update-ca-certificates command. update-ca-certificates is a program that updates the directory /etc/ssl/certs to hold SSL certificates and generates ca-certificates.crt, a concatenated single-file list of certificates. It reads the file /etc/ca-certificates.conf. Each line gives a pathname of a CA certificate under /usr/share/ca-certificates that should be trusted. Lines that begin with "#" are comment lines and thus ignored. Lines that begin with "!" are deselected, causing the deactivation of the CA certificate in question. Certificates must have a .crt extension in order to be included by update-ca-certificates. Furthermore all certificates with a .crt extension found below /usr/local/share/ca- certificates are also included as implicitly trusted. Before terminating, update-ca-certificates invokes run-parts on /etc/ca- certificates/update.d and calls each hook with a list of certificates: those added are prefixed with a +, those removed are prefixed with a -.

OPTIONS

FILES

/etc/ca-certificates.conf A configuration file. /etc/ssl/certs/ca-certificates.crt A single-file version of CA certificates. This holds all CA certificates that you activated in /etc/ca-certificates.conf. /usr/share/ca-certificates Directory of CA certificates. /usr/local/share/ca-certificates Directory of local CA certificates (with .crt extension).

SEE ALSO

AUTHOR

This manual page was written by Fumitoshi UKAI ukai@debian.or.jp>, for the Debian project (but may be used by others). 20 April 2003 UPDATE-CA-CERTIFICATES(8)

© 2019 Canonical Ltd. Ubuntu and Canonical are registered trademarks of Canonical Ltd.

Источник

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

date

28.09.2022

user

itpro

directory

CentOS, Linux, Ubuntu

comments

комментария 4

В этой статье мы покажем, как добавить (установить) новый сертификат в список доверенных корневых сертификатов в Linux.

Читайте также:  Install intel graphics drivers linux

Например, вы используете на своем сайте самоподписанный SSL/TLS сертификат и не хотите, чтобы на клиентах при открытии сайта появлялась ошибка SEC_ERROR_UNKNOWN_ISSUER.

недоверенные сертификат в браузере на linux

В данном примере мы установим в Linux корневой сертификат Минцифры (Russian Trusted Sub CA), на базе которого сейчас выпускаются сертификаты для сайтов многих компаний и гос-органов РФ.

Или это может быть самоподписанный сертификат с сайта IIS на Windows.

Чтобы проверить, что ваш хост Linux не может проверить (и соответственно не доверяет) SSL сертификату на определенном сайте, выполните команду:

$ curl –I https://www.sberbank.ru

curl: (60) SSL certificate problem: unable to get local issuer certificate. More details here: https://curl.haxx.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.

curl - не могу проверить сертификат

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

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

Для обновления хранилища доверенных сертификатов в Linux вам нужен файл сертификата в формате PEM с расширением файла .crt. PEM сертификат представляет собой текстовый файл в формате base64, который содержит в начале файла строку —-BEGIN CERTIFICATE—- и в конце ——END CERTIFICATE——.

PEM формат сертификата

Если ваш файл сертификата в формате DER, вы можете конвертировать его в PEM формат с помощью утилиты openssl:

$ openssl x509 -in my_trusted_sub_ca.der -inform der -out my_trusted_sub_ca.cer

Сначала рассмотрим, как добавит корневой сертификат вашего CA в доверенные в дистрибутивах Linux на базе DEB (Ubuntu, Debian, Mint, Kali Linux).

Скопируйте файлы ваших сертификаты в хранилище сертификатов в каталог usr/local/share/ca-certificates/:

$ sudo cp my_trusted_sub_ca.crt /usr/local/share/ca-certificates/
$ sudo cp my_trusted_root_ca.crt /usr/local/share/ca-certificates/

Обновите хранилище сертификатов командой:

$ sudo update-ca-certificates -v

$ sudo apt-get install -y ca-certificates

обновить хранилище сертфикатов в linux

Если сертификаты успешно добавлены, появится сообщение о том, что сертфикат скопирован в /etc/ssl/certs/:

Updating certificates in /etc/ssl/certs… 2 added, 9 removed; done. Running hooks in /etc/ca-certificates/update.d

$ sudo dpkg-reconfigure ca-certificates

Выберите из списка сертификаты, которые нужно добавить в доверенные.

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

В Linux список доверенных сертификатов содержится в файле /etc/ssl/certs/ca-certificates.crt. Обе рассмотренные выше команды обновят этот файл и добавят в информацию о новых сертификатах.

Читайте также:  Addictive drums 2 linux

Вы можете проверить, что ваши сертификаты были добавлены в доверенные с помощью команды:

Укажите часть Common Name вашего сертификата вместо YourCASubj для поиска в хранилище по subject.

awk вывести доверенные сертификаты

Вы можете убедиться, что ваша ОС доверяет сертификату с помощью команду:

$ openssl verify my_trusted_sub_ca.crt

openssl verify - проверить доверяет ли linux сертификату

error 20 at 0 depth lookup: unable to get local issuer certificate error my_trusted_sub_ca.crt: verification failed

Теперь проверьте, что на сайте используется доверенный SSL сертификат с помощью curl:

$ curl –I https://www.sberbank.ru

Все ок, сертификат доверенные < HTTPOnly: secure >.

curl проверка ssl сертификата secure

$ sudo mkdir /usr/share/ca-certificates/extra

Чтобы удалить сертификат, удалите ваш crt файл:

$ sudo rm /usr/local/share/ca-certificates/yourcert.crt

$ sudo update-ca-certificates —fresh

В дистрибутивах Linux на базе RPM (CentOS, Oracle, RHEL, Rocky Linux, Fedora) для добавления сертификата в доверенные:

  1. Установите пакет ca-certificates: # yum install ca-certificates
  2. Скопируйте файл сертификата в каталог /etc/pki/ca-trust/source/anchors/: # cp mycert.crt /etc/pki/ca-trust/source/anchors/
  3. Обновите хранилище:
    # update-ca-trust force-enable
    # update-ca-trust extract

Добавить корневой доверенный сертификат для браузеров Mozilla, Chrome

Теперь все системные утилиты будут доверять сайтам, использующим данный CA. Но это не повлияет на веб браузеры Mozilla Firefox или Google Chrome. Они по-прежнему будут показывать предупреждение о недоверенном сертификате.

Дело в том, что браузеры Firefox, Chromium, Google Chrome, Vivaldi и даже почтовый клиент Mozilla Thunderbird не используют системное хранилище сертификатов Linux. Хранилище сертификатов для этих программ находится в директории пользователя в файле cert8.db (для Mozilla) или cert9.db (для Chromium и Chrome). Для обновления этих хранилищ сертификатов используется утилита certutil из пакета libnss3-tools.

$ sudo apt install libnss3-tools

установка libnss3-tools

Теперь выполните следующие скрипты для добавления ваших сертификатов в хранилище через NSS:

#!/bin/bash
certfile=»my_rusted_root_ca.crt»
certname=»My Root CA1″
for certDB in $(find ~/ -name «cert8.db»)
do
certdir=$(dirname $);
certutil -A -n «$» -t «TCu,Cu,Tu» -i $ -d dbm:$
done
for certDB in $(find ~/ -name «cert9.db»)
do
certdir=$(dirname $);
certutil -A -n «$» -t «TCu,Cu,Tu» -i $ -d sql:$
done

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

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Источник

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