Создание самоподписанного сертификата SSL

Creating a Self-Signed SSL Certificate

25 Мая 2020 | Терминал

В этом руководстве объясняется, как создать самозаверяющий сертификат SSL с помощью инструмента openssl.

Создание самоподписанного сертификата SSL


Что такое самоподписанный сертификат 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. Теперь, когда у вас есть сертификат, вы можете настроить приложение для его использования.


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...