Ограничение самозаверяющего SSL-сертификата
адача для многих системных администраторов Linux. К счастью, даже если вы не являетесь администратором, это легко сделать с помощью OpenSSL, инструмента с открытым исходным кодом, который по умолчанию устанавливается во многих дистрибутивах Linux. Здесь мы объясним, что такое OpenSSL, как его установить и, самое главное, как использовать его для создания сертификатов SSL и TLS в вашей системе.Читайте также: Как настроить Leafnode в качестве автономного сервера USENET
Что такое OpenSSL?
OpenSSL — это библиотека, разработанная в рамках проекта OpenSSL для предоставления реализаций SSL и TLS с открытым исходным кодом для шифрования сетевого трафика. Он легко доступен для различных дистрибутивов на базе Unix и может использоваться для создания сертификатов, закрытых ключей RSA и выполнения общих задач, связанных с криптографией.
Ограничение самозаверяющего SSL-сертификаContents
Что такое OpenSSL?
уете OpenSSL для создания сертификата SSL, он считается «самозаверяющим». Это означает, что сертификат SSL подписан собственным закрытым ключом, а не центром сертификации (CA).
Contents
Таким образом, 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](https://saintist.ru/wp-content/uploads/2024/05/openssl-version-check.png)
Вы можете ознакомиться с предоставленн
Установка
p>openssl help
![Команда справки Openssl 1](https://saintist.ru/wp-content/uploads/2024/05/openssl-help-command-1.png)
Читайте также: 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](https://saintist.ru/wp-content/uploads/2024/05/nano-config-file-edit.png)
Далее вам необходимо сгенерировать закрытый ключ RSA, который затем будет использоваться для создания корневого сертификата —:
openssl genrsa -out example.key 2048
Флаг -out
используется в этом случае для указания имени сгенерированного ключа. Также указан размер ключа 2048 бит, который является значением по умолчанию для ключей RSA.
![Openssl генерирует закрытый ключ Rsa](https://saintist.ru/wp-content/uploads/2024/05/openssl-generate-rsa-private-key.png)
Читайте также: Как использовать команду dd в Linux
Вам также потребуется создать запрос на подпись сертификата (CSR):
openssl req -new -key example.key -out example.csr -config example.conf
В этом случае флаг -key
использ
Создание сертификата с использованием файла конфигурации
файла CSR, а флагПосле этого вы можете сгенерировать корневой сертификат, который будет использоваться для создания нашего итогового сертификата:
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 создать самоподписанный сертификат](https://saintist.ru/wp-content/uploads/2024/05/openssl-generate-self-signed-certificate.png)
Читайте также: Как настроить SFTP-сервер в Linux
Создание сертификата без файла конфигурации
Кроме того, вы также можете сгенерировать сертификат с помощью OpenSSL без файла конфигурации.
Вы можете начать с создания закрытого ключа RSA:
openssl genrsa -out example.key 2048
Далее вам нужно будет создать CSR:
openssl req -new -key example.key -out example.csr
При создании CSR вам будет предложено ответить на вопросы о вашей организации.
![Запрос на подпись сертификата Openssl](https://saintist.ru/wp-content/uploads/2024/05/openssl-certificate-signing-request.png)
Наконец, мы можем сгенерировать сам сертификат:
openssl x509 -req -days 30 -in example.csr -signkey example.key -out example.crt
![Openssl генерирует сертификат без файла конфигурации](https://saintist.ru/wp-content/uploads/2024/05/openssl-generating-certificate-without-config-file.png)
Читайте также: Как получить бесплатный SSL-сертификат для вашего сайта WordPress
Проверка ключей и сертификатов
Ключи и сертификаты легко проверяются с помощью OpenSSL с помощью флага -check
:
openssl rsa -check -in example.key
![Openssl проверяет закрытый ключ Rsa](https://saintist.ru/wp-content/uploads/2024/05/openssl-verify-rsa-private-key.png)
Вы можете проверить запросы на подпись сертификата:
openssl req -text -noout -in example.csr
а также сертификаты:
openssl x509 -text -noout -in example.crt
![Сертификат проверки Openssl](https://saintist.ru/wp-content/uploads/2024/05/openssl-check-certificate.png)
Часто задаваемые вопросы
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