🔐🌐 ""Усиление безопасности веб-серверов Linux с помощью самоподписанных сертификатов"" 🛡️🖥️



Системные администраторы Linux, важность HTTPS в современном вебе неоспорима, и иногда возникает необходимость быстро настроить сертификацию, особенно в закрытых или тестовых средах. Вот почему предлагается взглянуть на простой и удобный способ создания самоподписанных сертификатов для ваших веб-серверов, используя только встроенные инструменты системы. 🚀📝



🔹 Создание ключа и сертификата для CA:



mkdir ~/tls && cd ~/tls

openssl ecparam -out myCA.key -name prime256v1 -genkey

openssl req -x509 -new -nodes -key myCA.key -sha256 -days 9999 -out myCA.crt





🔹 Генерация ключа и CSR для сервера:



openssl genrsa -out domainname.key 2048

openssl req -new -key domainname.key -out domainname.csr







🔹 Подготовка конфигурационного файла:

 mcedit domainname.ext





Добавьте следующие строки в файл:

 authorityKeyIdentifier=keyid,issuer

basicConstraints=CA:FALSE

keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment

subjectAltName = @alt_names



[alt_names]

IP.1 = IP_ADDRESS

DNS.1 = domainname.internal





🔹 Генерация сертификата на основе CSR:



openssl x509 -req -in domainname.csr -CA myCA.crt -CAkey myCA.key

-CAcreateserial -out domainname.crt -days 9999 -sha256 -extfile domainname.ext





🔹 Копирование сертификата и ключа в директорию веб-сервера:



mkdir /etc/nginx/certs

cp domainname.crt /etc/nginx/certs/.

cp domainname.key /etc/nginx/certs/.





🔹 Создание файла dhparam:



openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048





🔹 Добавление конфигурации в Nginx:



listen 443 http2 ssl;

server_name domainname.internal IP_ADDRESS;

ssl_certificate /etc/nginx/certs/domainname.crt;

ssl_certificate_key /etc/nginx/certs/domainname.key;

ssl_dhparam /etc/ssl/certs/dhparam.pem;





🔹 Перезапуск Nginx:



nginx -t

nginx -s reload





🔹 Добавление CA в доверенные на локальном сервере:



cp myCA.crt /usr/local/share/ca-certificates/.

update-ca-certificates





Теперь можно безопасно подключаться к веб-серверу по доменному имени или IP-адресу, используя самоподписанный сертификат на 9999 дней без предупреждений браузера.



Эта инструкция станет отличным ресурсом для быстрой настройки и обеспечения безопасности ваших веб-серверов, особенно когда доступ к Let's Encrypt ограничен или невозможен.

___________________________



Дополнительный материал:

🧠 - Защита сети и протоколов