Некоторые приложения или сервисы в 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 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