Как создать самозаверяющий SSL-сертификат в Linux

12 set 2022 3 min di lettura
Как создать самозаверяющий SSL-сертификат в Linux
Indice dei contenuti

Введение

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

Что такое самозаверяющий SSL-сертификат?

Самоподписанный SSL-сертификат — это сертификат, подписанный создавшим его лицом, а не доверенным центром сертификации. Самоподписанные сертификаты могут иметь тот же уровень шифрования, что и доверенный сертификат SSL, подписанный ЦС.

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

Самоподписанные сертификаты в основном используются для тестирования или внутреннего использования. Не используйте самозаверяющий сертификат в производственных системах, подключенных к Интернету.

Если вы хотите создать самоподписанный сертификат на удаленном сервере, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Предпосылки

Инструментарий openssl необходим для создания самозаверяющего сертификата.

Чтобы проверить, установлен ли пакет openssl в вашей системе Linux, откройте терминал, введите openssl version и нажмите Enter. Если пакет установлен, система напечатает версию OpenSSL, иначе вы увидите что-то вроде openssl command not found.

Если пакет openssl не установлен в вашей системе, вы можете установить его, выполнив следующую команду:

Убунту и Дебиан

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]:Noviello
 Organizational Unit Name (eg, section) []:Marketing
 Common Name (eg server FQDN or YOUR name) []:noviello.it
 Email Address []:[email protected]

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

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.