Создание самоподписанного SSL-сертификата с помощью OpenSSL
Самоподписанные сертификаты часто используются для разработки, тестирования или внутреннего использования, когда нет необходимости в сертификатах, выданных доверенными центрами сертификации (CA). В этой статье мы пошагово разберём, как создать такой сертификат с помощью OpenSSL.
Что потребуется
- OpenSSL (предустановлен в большинстве дистрибутивов Linux и macOS, на Windows можно установить вручную)
- Терминал
Шаг 1: Создание приватного ключа
Приватный ключ используется для подписи сертификата и защищает соединение.
openssl genrsa -out private.key 2048
private.key
— имя файла с приватным ключом2048
— длина ключа в битах (можно указать 4096 для большей надёжности)
Шаг 2: Создание запроса на сертификат (CSR)
Хотя мы не будем отправлять CSR центру сертификации, он нужен для создания сертификата.
openssl req -new -key private.key -out request.csr
В процессе выполнения команды OpenSSL задаст вам вопросы:
- Country Name (код страны)
- State or Province Name (регион)
- Locality Name (город)
- Organization Name (название компании)
- Common Name (домен, например:
example.com
илиlocalhost
)
⚠️ Важно: в поле Common Name укажите домен или IP-адрес, для которого вы создаёте сертификат.
Шаг 3: Создание самоподписанного сертификата
Теперь, используя ключ и CSR, создаём сертификат, действительный, например, один год (365 дней):
openssl x509 -req -days 365 -in request.csr -signkey private.key -out certificate.crt
certificate.crt
— итоговый сертификат
Шаг 4 (опционально): Объединение сертификата и ключа в .pem
Некоторые приложения (например, Nginx) используют формат PEM:
cat private.key certificate.crt > fullchain.pem
Проверка содержимого сертификата
Убедитесь, что всё сработало:
openssl x509 -in certificate.crt -text -noout
Вы увидите информацию о сроке действия, алгоритмах и субъекте сертификата.
Где можно использовать самоподписанный сертификат
- Локальные серверы (например,
localhost
) - Тестовые среды
- Внутренние сервисы, доступные только по VPN
Важное замечание
Браузеры и системы не доверяют самоподписанным сертификатам, и будут показывать предупреждения при открытии таких сайтов. Это нормально для тестирования, но для продакшена рекомендуется использовать сертификаты от Let's Encrypt или другого CA.
Заключение
Создание самоподписанного SSL-сертификата — простой и быстрый способ обеспечить HTTPS для разработки и тестирования. OpenSSL предоставляет все необходимые инструменты, и при правильном подходе вы можете безопасно работать даже в изолированных средах.
Настроить мониторинг за 30 секунд
Надежные оповещения о даунтаймах. Без ложных срабатываний