четверг, 15 мая 2025 г.

Использование утилиты mkcert для создания самоподписанных сертификатов без боли

mkcert - это инструмент создания локальных самоподписанных сертификатов с поддержкой доверия в системе.

Установка утилиты выполняется так:
# dnf install -y golang
# go install filippo.io/mkcert@latest

Проверка:
# /root/go/bin/mkcert  --version
v1.4.4


Создание локального корневого сертификата CA
# yum install nss-tools
# /root/go/bin/mkcert -install

Ответ должен быть такой:
Created a new local CA 💥
The local CA is already installed in the system trust store! 👍
The local CA is now installed in the Firefox and/or Chrome/Chromium trust store (requires browser restart)! 🦊


Теперь создаем сертификат для своего сервера, например для bs.server.ru.
# /root/go/bin/mkcert bs.server.ru localhost 127.0.0.1
Created a new certificate valid for the following names 📜
 - "bs.server.ru"
 - "localhost"
 - "127.0.0.1"
The certificate is at "./bs.server.ru+2.pem" and the key at "./bs.server.ru+2-key.pem" ✅
It will expire on 15 August 2027 🗓

Будет создан сертификат bs.server.ru+2.pem и приватный ключ bs.server.ru+2-key.pem для всех запрошенных имен (bs.server.ru, localhost, 127.0.0.1)

Устанавливаем сертификат SSL в web-сервер apache
# dnf install mod_ssl
# systemctl restart httpd

Резервируем настройки по умолчанию
# mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf_old
Создаем свой файл настроек
# nano /etc/httpd/conf.d/ssl-bs.conf
Listen 443
<VirtualHost *:443>
    ServerName bs.server.ru
    SSLEngine on
    SSLCertificateFile "/home/korolev/bs.server.ru+2.pem"
    SSLCertificateKeyFile "/home/korolev/bs.server.ru+2-key.pem"
    DocumentRoot "/var/www/html"
</VirtualHost>

Перезагружаем web-сервер:
# systemctl restart httpd
Открываем порт 443 на сервере
# firewall-cmd --permanent --add-port=443/tcp
# firewall-cmd --reload

Теперь при обращении к https://bs.server.ru/ по сети в браузере будет отображаться защищенное соединение! И до 15 августа 2027 года. То есть на 2 года! Удобно.

Комментариев нет:

Отправить комментарий