Команда Linux openssl

Полный справочник команд Linux


OpenSSL — это мощный криптографический инструментарий с открытым исходным кодом, предоставляющий различные алгоритмы шифрования, функции управления сертификатами и реализации протоколов SSL/TLS. Это де-факто стандартный инструмент для решения задач шифрования в системах Linux.

Основные функции OpenSSL включают:

  • Создание и управление SSL-сертификатами
  • Шифрование/расшифровка файлов
  • Генерация пар ключей
  • Проверка SSL-соединений
  • Вычисление хеш-значений
  • Проверка цифровой подписи

Базовый синтаксис

Базовый синтаксис команды openssl:

openssl command [command_options] [command_args]

Где:

  • commandcommand: подкоманда OpenSSL для выполнения (например, genrsa, req, x509 и т. д.)
  • command_optionsoptions: параметры для подкоманды
  • command_argsarguments: аргументы для подкоманды

Общие подкоманды и примеры

1. Генерация пары ключей RSA

Генерация 2048-битного закрытого ключа RSA:

openssl genrsa -out private.key 2048

Извлечение открытого ключа из закрытого ключа:

openssl rsa -in private.key -pubout -out public.key

Пояснение параметров:

  • -out-out: указать выходной файл
  • 2048bits: длина ключа (в битах)
  • -pubout-pubout: вывести открытый ключ

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

Генерация CSR (запроса на подпись сертификата):

openssl req -new -key private.key -out cert.csr

Генерация самоподписанного сертификата (действителен 365 дней):

openssl req -x509 -new -key private.key -days 365 -out cert.crt

Пояснение параметров:

  • -new-new: создать новый запрос
  • -key-key: указать файл закрытого ключа
  • -days-days: срок действия сертификата (дней)
  • -x509-x509: Вывести сертификат в формате X.509

3. Шифрование и дешифрование файлов

Зашифруйте файл с помощью AES-256-CBC:

openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.enc

Расшифруйте файл:

openssl enc -d -aes-256-cbc -in encrypted.enc -out decrypted.txt

Пояснение параметров:

  • -aes-256-cbc-aes-256-cbc: Использовать алгоритм AES-256-CBC
  • -salt-salt: Добавить случайную соль для повышения безопасности
  • -in-in: Входной файл
  • -out-out: Выходной файл
  • -d-d: Режим дешифрования

4. Вычисление хеш-значения файла

Вычислите хеш SHA-256:

openssl dgst -sha256 filename.txt

Вычислите хеш MD5:

openssl dgst -md5 filename.txt

5. Проверка SSL-соединения

Проверьте SSL-сертификат удалённого сервера:

openssl s_client -connect example.com:443 -showcerts

Пояснение параметров:

  • -connect-connect: укажите хост и порт
  • -showcerts-showcerts: показать цепочку сертификатов сервера

Продвинутое использование

1. Создание сертификата в формате PKCS#12

Упакуйте сертификат и закрытый ключ в файл PKCS#12:

openssl pkcs12 -export -in cert.crt -inkey private.key -out cert.p12

2. Просмотр информации о сертификате

Просмотрите подробную информацию о сертификате:

openssl x509 -in cert.crt -text -noout

3. Проверка цепочки сертификатов

Проверьте целостность цепочки сертификатов:

openssl verify -CAfile ca.crt cert.crt

Вопросы безопасности

  1. Защита ключа: для файла закрытого ключа следует установить соответствующие разрешения (например, 600), чтобы избежать утечки.Выбор алгоритма: избегайте использования небезопасных алгоритмов (например, MD5, SHA1).
  2. Надёжность пароля: используйте надёжный пароль при шифровании.Срок действия сертификата: регулярно продлевайте просроченные сертификаты.
  3. Генерация случайных чисел: Убедитесь, что в системе достаточно энтропии для криптографических операций.: Используйте надёжный пароль при шифровании
  4. Срок действия сертификата: Периодически обновляйте истекшие сертификаты
  5. Генерация случайных чиселУбедитесь, что в системе достаточно энтропии для криптографических операций.

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

Вопрос 1: Как проверить версию OpenSSL?

openssl version

Вопрос 2: Как сгенерировать более безопасные ключи ECC?

openssl ecparam -genkey -name secp384r1 -out ecc.key

Вопрос 3: Как преобразовать форматы сертификатов?

Преобразование из PEM в DER:

openssl x509 -in cert.pem -outform der -out cert.der

Практические упражнения

  1. Сгенерировать 4096-битную пару ключей RSA
  2. Создать самоподписанный сертификат со сроком действия 2 года
  3. Зашифровать текстовый файл и расшифровать его с помощью того же пароля
  4. Проверьте информацию о SSL-сертификатах сайтов, которые вы часто используете

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


Полный справочник команд Linux

Другие расширения