Создание самоподписанного сертификата SSL
Создание самоподписанного сертификата SSL
Creating a Self-Signed SSL Certificate
В этом руководстве объясняется, как создать самозаверяющий сертификат SSL с помощью инструмента openssl.

Что такое самоподписанный сертификат SSL?
Самозаверяющий сертификат SSL - это сертификат, подписанный лицом, которое его создало, а не доверенным центром сертификации. Самозаверяющие сертификаты могут иметь тот же уровень шифрования, что и доверенный CA-подписанный SSL-сертификат.
Самозаверяющие сертификаты, признанные действительными в любом браузере. Если вы используете самозаверяющий сертификат, веб-браузер покажет посетителю предупреждение о том, что сертификат веб-сайта невозможно проверить.
Самозаверяющие сертификаты в основном используются для целей тестирования или внутреннего использования. Вы не должны использовать самозаверяющий сертификат в производственных системах, которые подключены к Интернету.
Предпосылки
Инструментарий openssl необходим для создания самозаверяющего сертификата.
Чтобы проверить, установлен ли пакет openssl в вашей системе Linux, откройте ваш терминал, введите openssl version
и нажмите Enter. Если пакет установлен, система распечатает версию OpenSSL, в противном случае вы увидите нечто подобное openssl command not found
.
Если пакет openssl не установлен в вашей системе, вы можете установить его, выполнив следующую команду:
-
Ubuntu и Debian
sudo apt install openssl
-
Чентос и Федора
sudo yum install openssl
Создание самоподписанного SSL-сертификата
Чтобы создать новый самоподписанный сертификат SSL, используйте openssl req
команду:
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 3650 \
-nodes \
-out example.crt \
-keyout example.key
Давайте разберем команду и разберемся, что означает каждая опция:
-newkey rsa:4096
- Создает новый запрос сертификата и 4096-битный ключ RSA. Значение по умолчанию составляет 2048 бит.-x509
- Создает сертификат X.509.-sha256
- Используйте 265-битный SHA (алгоритм безопасного хэширования).-days 3650
- Количество дней для сертификации сертификата. 3650 - это 10 лет. Вы можете использовать любое положительное целое число.-nodes
- Создает ключ без ключевой фразы.-out example.crt
- Указывает имя файла, в который будет записан вновь созданный сертификат. Вы можете указать любое имя файла.-keyout example.key
- Задает имя файла, в который будет записан вновь созданный закрытый ключ. Вы можете указать любое имя файла.
Для получения дополнительной информации о параметрах openssl req
команды посетите страницу документации OpenSSL req.
Как только вы нажмете Enter, команда сгенерирует закрытый ключ и задаст вам ряд вопросов, которые она будет использовать для генерации сертификата.
Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Введите запрашиваемую информацию и нажмите Enter.
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Alabama
Locality Name (eg, city) []:Montgomery
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linuxize
Organizational Unit Name (eg, section) []:Marketing
Common Name (e.g. server FQDN or YOUR name) []:linuxize.com
Email Address []:hello@linuxize.com
Сертификат и закрытый ключ будут созданы в указанном месте. Используйте команду ls, чтобы убедиться, что файлы были созданы:
ls
example.crt example.key
Это оно! Вы создали новый самозаверяющий сертификат SSL.
Всегда полезно создать резервную копию нового сертификата и ключа для внешнего хранилища.
Создание самоподписанного SSL-сертификата без запроса
Если вы хотите сгенерировать самозаверяющий SSL-сертификат без запроса какого-либо вопроса, используйте -subj
параметр и укажите всю информацию о субъекте:
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 3650 \
-nodes \
-out example.crt \
-keyout example.key \
-subj "/C=SI/ST=Ljubljana/L=Ljubljana/O=Security/OU=IT Department/CN=www.example.com"
Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----
Поля, указанные в
-subj
строке, перечислены ниже:
C=
- Название страны. Двухбуквенное сокращение ISO.ST=
- Название штата или провинции.L=
- Название населенного пункта. Название города, в котором вы находитесь.O=
- Полное название вашей организации.OU=
- Организационная единица.CN=
- Полное доменное имя.
Вывод
В этом руководстве мы показали, как создать самозаверяющий сертификат SSL с помощью инструмента openssl. Теперь, когда у вас есть сертификат, вы можете настроить приложение для его использования.