- DESCRIPTION¶
- OPTIONS¶
- FILES¶
- SEE ALSO¶
- AUTHOR¶
- Обновление корневых сертификатов на Linux
- Установка из репозитория
- Загрузка пакета с сертификатами
- Установка вручную
- а) Для Deb (Debian / Ubuntu / Astra Linux)
- б) Для RPM (Rocky Linux / РЕД ОС)
- Ручная установка Let’s Encrypt
- Как обновить сертификат linux
- NAME
- SYNOPSIS
- DESCRIPTION
- OPTIONS
- FILES
- SEE ALSO
- AUTHOR
- ¶ Установка сертификатов удостоверяющих центров в Debian/Ubuntu Linux
- ¶ Установка центра сертификации
- ¶ Установка сертификатов
- ¶ Конвертация сертификата
- ¶ Обновление сертификатов
- ¶ Обновление в Debian/Ubuntu Linux
- ¶ Создание самоподписанного сертификата
- ¶ Создание самоподписанного сертификата с альтернативным доменом
DESCRIPTION¶
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¶
A summary of options is included below. -h, —help Show summary of options. -v, —verbose Be verbose. Output openssl rehash. -f, —fresh Fresh updates. Remove symlinks in /etc/ssl/certs directory.
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¶
Source file: | update-ca-certificates.8.en.gz (from ca-certificates 20200601~deb10u2) |
Source last updated: | 2021-01-28T12:01:43Z |
Converted to HTML: | 2021-02-06T11:18:12Z |
Обновление корневых сертификатов на Linux
Обновлено: 20.06.2023 Опубликовано: 03.10.2021
- Не открываются или выдают предупреждение безопасности некоторые (или все) сайты, работающие по 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_*_all.deb
И обновляем корневые сертификаты:
Установка вручную
Выше рассмотрены самые удобные способы обновления корневых сертификатов. Но если у нас есть сертификат без пакета, то нам его нужно будет установить вручную.
Принцип данной установки сводится к двум шагам:
- Положит файл с сертификатом в определенный каталог.
- Запустить команду для импорта сертификата.
В зависимости от типа Linux, действия будут отличаться.
а) Для Deb (Debian / Ubuntu / Astra Linux)
Копируем файл в каталог /usr/local/share/ca-certificates:
cp /foo/bar/cert.crt /usr/local/share/ca-certificates/
б) Для RPM (Rocky Linux / РЕД ОС)
Копируем файл в каталог /etc/pki/ca-trust/source/anchors:
cp /foo/bar/cert.crt /etc/pki/ca-trust/source/anchors/
Ручная установка Let’s Encrypt
Мы можем столкнуться с ситуацией, когда в предоставляемых официальных пакетах не окажется обновленного сертификата. Например, на момент написания данной инструкции у систем на базе 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——
Открываем на редактирование файл:
И добавляем в него строку с указанием на созданный файл:
Как обновить сертификат linux
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.
¶ Установка сертификатов удостоверяющих центров в Debian/Ubuntu Linux
Некоторые приложения или сервисы в Linux, на самом деле подавляющее большинство, и в частности веб серверы, такие как NGINX или Apache, устанавливают защищенные SSL шифрованием HTTPS подключения. Установленные в системе сертификаты корневых удостоверяющих центров CA используются этими приложениями для проверки подлинности предоставляемых их клиентами сетификатов.
¶ Установка центра сертификации
Установите пакет корневых сертификатов ca-certificates
apt install -y ca-certificates
¶ Установка сертификатов
Скопируйте заказанный .cer или .crt файл сертификата
cp your_certtificate.crt /usr/local/share/ca-certificates
¶ Конвертация сертификата
Если сертификат получен в формате .pem , то его следует предварительно перевести с .crt формат, используя библиотеку OpenSSL
openssl x509 -outform der -in your_certificate.pem -out your_certificate.crt
После конвертирования можно скопировать файл в нужную папку.
¶ Обновление сертификатов
После этого остается лишь обновить сертификаты и сгенерировать ca-certificates.crt файл, содержащий все установленные в системе сертификаты:
Это обновит файл на основании ссылок из
/etc/ca-certificates.conf
сертификатов из директории
/etc/ssl/certs
и добавит содержимое новых устанавливаемых сертификатов из директории
/usr/local/share/ca-certificates
¶ Обновление в Debian/Ubuntu Linux
В Debian Linux есть визуальный инструмент для обновления сертификатов
dpkg-reconfigure ca-certificates
где можно выбрать устанавливаемые сертификаты или удалить ненужные.
¶ Создание самоподписанного сертификата
Для создания самоподписанного сертификата и загрузки его в секреты Kubernetes:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl/tls.key -out ssl/tls.crt -subj "/CN=halfoff.ru" kubectl create secret tls halfoff-ru-cert --cert=/ssl/tls.crt --key=/ssl/tls.key kubectl create secret tls halfoff-ru-cert --cert=/ssl/tls.crt --key=/ssl/tls.key -n traefik-ingress
¶ Создание самоподписанного сертификата с альтернативным доменом
Создать директорию, сгенерировать ключ сертификат удостоверяющего центра:
mkdir ssl && cd ssl openssl genrsa -des3 -out ca.key 2048 openssl req -x509 -new -nodes -key ca.key -sha256 -days 365 -out ca.pem
Создать файл для добавления альтернативных имен
authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = megacorp.ru
Создать самоподписанный сертификат:
openssl genrsa -out selfsigned.key 2048 openssl req -new -key selfsigned.key -out selfsigned.csr openssl x509 -req -in selfsigned.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out selfsigned.crt -days 365 -sha256 -extfile v3.ext