ГлавнаяОперационные системыLinuxКак создать SSL-сертификаты в Linux с помощью OpenSSL

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

Ограничение самозаверяющего SSL-сертификата

адача для многих системных администраторов Linux. К счастью, даже если вы не являетесь администратором, это легко сделать с помощью OpenSSL, инструмента с открытым исходным кодом, который по умолчанию устанавливается во многих дистрибутивах Linux. Здесь мы объясним, что такое OpenSSL, как его установить и, самое главное, как использовать его для создания сертификатов SSL и TLS в вашей системе.

Читайте также: Как настроить Leafnode в качестве автономного сервера USENET

Что такое OpenSSL?

OpenSSL — это библиотека, разработанная в рамках проекта OpenSSL для предоставления реализаций SSL и TLS с открытым исходным кодом для шифрования сетевого трафика. Он легко доступен для различных дистрибутивов на базе Unix и может использоваться для создания сертификатов, закрытых ключей RSA и выполнения общих задач, связанных с криптографией.

Ограничение самозаверяющего SSL-сертифика

Что такое OpenSSL?

уете OpenSSL для создания сертификата SSL, он считается «самозаверяющим». Это означает, что сертификат SSL подписан собственным закрытым ключом, а не центром сертификации (CA).

Таким образом, SSL-сертификату нельзя доверять, и его не следует использовать для каких-либо общедоступных сайтов. Если он используется, пользователи, скорее всего, увидят в своих браузерах предупреждения о сертификате.

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

Кроме того, вы можете использовать LetsEncrypt или получить сертификат, проверенный доверенным центром, например Comodo CA.

Установка

Большинство дистрибутивов Linux уже имеют встроенную версию OpenSSL по умолчанию. Если нет, вы можете легко его установить.

Вы можете установить его в Ubuntu и Debian с помощью команды apt:

sudo apt install openssl

В CentOS (или его альтернатива ) его можно установить с помощью команды yum:

sudo yum install openssl

<

Вы также можете легко загрузить его с его сайт в виде файла «.tar.gz».

Также читайте: Как использовать cURL для передачи данных из командной строки и многого другого

Основное использование

Теперь, когда у вас установлен OpenSSL, мы можем взглянуть на некоторые основные функции, предоставляемые программой.

Вы можете начать с просмотра версии и другой соответствующей информации о вашей установке OpenSSL:

openssl version -a
Проверка версии Openssl

Вы можете ознакомиться с предоставленн

Установка

p>
openssl help
Команда справки Openssl 1

Читайте также: 8 полезных и интересных команд Bash

Создание сертификата с использованием файла конфигурации

Создать сертификат с помощью OpenSSL можно разными способами. Один из них — использование файла конфигурации, в котором будут указаны сведения об организации.

Для начала вы можете создать файл конфигурации с именем «config.conf» и отредактировать его с помощью Nano:

sudo nano example.conf

Вот пример содержимого файла конфигурации:

[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
x509_extensions= v3_ca
distinguished_name = dn
 
[dn]
C = US
ST = California
L = Los Angeles
O = Org
OU = Sales
emailAddress = [email protected]
CN = www.org.test.com
 
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints = CA:true
 
[req_ext]
subjectAltName = @alt_names
 
[alt_names]
DNS.1 = test.example.com

Вы можете просто скопировать и вставить это в файл и внести необходимые измене

Основное использование

о вашей организации.

Редактировать файл конфигурации Nano

Далее вам необходимо сгенерировать закрытый ключ RSA, который затем будет использоваться для создания корневого сертификата —:

openssl genrsa -out example.key 2048

Флаг -outиспользуется в этом случае для указания имени сгенерированного ключа. Также указан размер ключа 2048 бит, который является значением по умолчанию для ключей RSA.

Openssl генерирует закрытый ключ Rsa

Читайте также: Как использовать команду dd в Linux

Вам также потребуется создать запрос на подпись сертификата (CSR):

openssl req -new -key example.key -out example.csr -config example.conf

В этом случае флаг -keyиспольз

Создание сертификата с использованием файла конфигурации

файла CSR, а флаг 42используется для указания имени файла конфигурации.

После этого вы можете сгенерировать корневой сертификат, который будет использоваться для создания нашего итогового сертификата:

openssl req -x509 -sha256 -nodes -new -key example.key -out example.crt -config example.conf

В процессе создания этого корневого сертификата флаг -sha256используется для указания SHA256 в качестве дайджеста сообщения.

Теперь, что касается последнего шага, мы можем, наконец, ввести следующее для создания нашего сертификата:

openssl x509 -sha256 -CAcreateserial -req -days 30 -in example.csr -extfile example.conf -CA example.crt -CAkey example.key -out final.crt

Флаг -CAуказывает корневой сертификат, флаг -CAkeyуказывает закрытый ключ, а -extfileуказывает имя файла конфигурации. Файл «final.crt» будет представлять собой нужный вам сертификат SSL.

Openssl создать самоподписанный сертификат

Читайте также: Как настроить SFTP-сервер в Linux

Создание сертификата без файла конфигурации

Кроме того, вы также можете сгенерировать сертификат с помощью OpenSSL без файла конфигурации.

Вы можете начать с создания закрытого ключа RSA:

openssl genrsa -out example.key 2048

Далее вам нужно будет создать CSR:

openssl req -new -key example.key -out example.csr

При создании CSR вам будет предложено ответить на вопросы о вашей организации.

Запрос на подпись сертификата Openssl

Наконец, мы можем сгенерировать сам сертификат:

openssl x509 -req -days 30 -in example.csr -signkey example.key -out example.crt
Openssl генерирует сертификат без файла конфигурации

Читайте также: Как получить бесплатный SSL-сертификат для вашего сайта WordPress

Проверка ключей и сертификатов

Ключи и сертификаты легко проверяются с помощью OpenSSL с помощью флага -check:

openssl rsa -check -in example.key
Openssl проверяет закрытый ключ Rsa

Вы можете проверить запросы на подпись сертификата:

openssl req -text -noout -in example.csr

а также сертификаты:

openssl x509 -text -noout -in example.crt
Сертификат проверки Openssl

Часто задаваемые вопросы

1. Нужно ли мне еще беспокоиться о Heartbleed?

Сердцекровие (CVE-2014-0160) — старая уязвимость, обнаруженная в OpenSSL в 2014 году. Затронуты как TLS-серверы, так и клиенты, работающие под управлением OpenSSL. Патч был быстро выпущен через несколько дней после его обнаружения, и в 2022 году об этой уязвимости не стоит беспокоиться, если вы используете современную и актуальную версию OpenSSL.

Если вы используете OpenSSL в системах на базе Debian и Ubuntu, вы всегда можете обновить его, выполнив следующие команды:

sudo apt update && sudo apt upgrade openssl

2. Как долго действуют SSL-сертификаты до истечения срока их действия?

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

Изображение предоставлено: Sls написано на деревянном кубическом блоке от 123RF

Создание сертификата без файла конфигурации

Проверка ключей и сертификатов

Часто задаваемые вопросы

1. Нужно ли мне еще беспокоиться о Heartbleed?

2. Как долго действуют SSL-сертификаты до истечения срока их действия?

ПОХОЖИЕ СТАТЬИ

Популярные записи