Самоподписанный SSL сертификат для внутреннего использования
Шифрование данных стало неотъемлемой частью современного интернета. Практически весь трафик передается через защищенное HTTPS-соединение, а сайты без шифрования встречаются крайне редко и автоматически помечаются браузерами как небезопасные.
Несмотря на предупреждения браузеров о "непроверенных" сертификатах, само шифрование работает корректно. Использование бесплатных сертификатов Lets Encrypt для домашней сети связано со множеством сложностей и затрат:
- Покупка домена
- Скрытие персональных данных
- Настройка DNS-хостинга
- Статический IP или DDNS
- Проброс портов
- Регулярное обновление каждые 3 месяца
Поэтому для внутренней сети оптимальным решением являются самоподписанные сертификаты, а Lets Encrypt лучше оставить для внешних сервисов.
Как оказалось, создание SSL-сертификатов – это проще, чем кажется. Достаточно одной команды:
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \ -keyout homelocal.key -out homelocal.crt -subj "/CN=home.local" \ -addext "subjectAltName=DNS:home.local"
- Файл ключа (homelocal.key)
- Файл сертификата (homelocal.crt)
- Срок действия: 10 лет
- Уровень шифрования (rsa:4096, sha256)
По умолчанию оба файла будут созданы в том каталоге, из которого выполнялась команда.
Для удобства управления рекомендуется использовать один домен для всей домашней сети (например, home.local) и размещать сервисы на поддоменах:
Чтобы ходить по данным именам, необходимо:
- DNS - у меня это Adguard Home, который добавлен на роутере как дополнительный DNS.
- Nginx - у меня это Nginx Proxy Manager, в который добавлен сертификат.
2. Добавить созданный сертификат в Доверенные корневые сертификаты на Windows или в Связку ключей на macOS
Итог: внедрение SSL-сертификатов в домашнюю сеть – простой и эффективный способ защитить данные, который не требует значительных временных и финансовых затрат.