Установка сертификатов удостоверяющих центров в 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
файл, содержащий все установленные в системе сертификаты:
update-ca-certificates
Это обновит файл на основании ссылок из/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=antroot.ru" kubectl create secret tls antroot-ru-cert --cert=/ssl/tls.crt --key=/ssl/tls.key kubectl create secret tls antroot-ru-cert --cert=/ssl/tls.crt --key=/ssl/tls.key -n traefik-ingress
Создать файл для добавления альтернативных имен
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