0Pricing
Cryptology Academy · Урок

Основы командной строки OpenSSL

Освойте основные команды OpenSSL для генерации ключей, шифрования, хеширования и проверки сертификатов.

«Основы командной строки OpenSSL» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Версия и сведения о сборке OpenSSL

Команда "openssl version -a" отображает версию OpenSSL, дату сборки, компилятор и настроенные параметры. Проверка версии важна, поскольку криптографические возможности и значения по умолчанию существенно различаются между OpenSSL 1.0.x, 1.1.x и 3.x. Многие старые алгоритмы в новых версиях по умолчанию отключены в целях безопасности.

Генерация ключей RSA

Команда "openssl genrsa -out private.pem 4096" создаёт закрытый ключ RSA длиной 4096 бит в формате PEM. Для использования в рабочей среде минимум составляет 2048 бит, ключ длиной 3072 бита обеспечивает примерно 128-битный уровень безопасности, а ключ длиной 4096 бит даёт дополнительный запас. Ключи можно зашифровать с помощью AES при хранении, добавив "-aes256" в команду; после этого будет предложено ввести парольную фразу.

Генерация ключей EC

Ключи на эллиптических кривых создаются в два этапа. Сначала команда "openssl ecparam -name prime256v1 -genkey -noout -out ec_private.pem" создаёт закрытый ключ EC с использованием кривой P-256. Альтернативный вариант: "openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-384 -out ec_private.pem" использует более новый интерфейс genpkey, предпочтительный для нового кода.

Просмотр сведений о ключах

Содержимое ключей RSA можно проверить с помощью команды "openssl rsa -text -noout -in private.pem": она отображает модуль, открытый показатель степени и простые множители. Для ключей EC команда "openssl ec -text -noout -in ec_private.pem" отображает имя кривой и значение ключа. Флаг "-noout" подавляет вывод в формате PEM.

Генерация случайных данных

OpenSSL может генерировать криптографически стойкие случайные байты: команда "openssl rand -hex 32" выводит 32 случайных байта в шестнадцатеричном виде (64 шестнадцатеричных символа), подходящих для создания симметричных ключей или одноразовых значений. Команда "openssl rand -base64 32" выводит случайные байты в кодировке Base64. Для этого используется источник энтропии OS (/dev/urandom в системах Unix).

Вычисление хешей

Команда "openssl dgst" вычисляет дайджесты сообщений: команда "openssl dgst -sha256 file.txt" вычисляет хеш SHA-256 файла. Команда "openssl dgst -sha256 -hmac key file.txt" вычисляет HMAC-SHA256. Команда "openssl dgst -sha256 -sign private.pem -out sig.bin file.txt" создаёт цифровую подпись файла.

Шифрование файлов

Для симметричного шифрования файла используется команда "openssl enc -aes-256-cbc -pbkdf2 -in plaintext.txt -out encrypted.bin". Флаг "-pbkdf2" использует PBKDF2 для получения ключа из парольной фразы вместо устаревшего EVP_BytesToKey. Расшифрование выполняется командой "openssl enc -d -aes-256-cbc -pbkdf2 -in encrypted.bin -out decrypted.txt". Для нового кода предпочтительны режимы AEAD, например GCM с 256-битным ключом.

Преобразование форматов PEM и DER

Сертификаты и ключи существуют в двух форматах кодирования. PEM использует кодировку base64 с заголовочными и завершающими строками (-----BEGIN CERTIFICATE-----) и применяется большинством инструментов Unix. DER — двоичный формат кодирования, используемый Java и Windows. Для преобразования PEM в DER выполните команду "openssl x509 -inform PEM -outform DER -in cert.pem -out cert.der". Для преобразования DER в PEM поменяйте местами флаги -inform и -outform.

Проверка подписей

Проверка цифровой подписи выполняется командой "openssl dgst -sha256 -verify public.pem -signature sig.bin file.txt". Сначала необходимо извлечь открытый ключ: "openssl rsa -pubout -in private.pem -out public.pem". Для проверки на основе сертификата команда "openssl verify -CAfile ca.pem cert.pem" проверяет сертификат относительно указанной цепочки CA.

Проверка сведений о сертификате

Просмотр сертификата — одна из самых распространённых задач OpenSSL: команда "openssl x509 -text -noout -in cert.pem" отображает все поля сертификата, включая субъект, издателя, даты действия, SAN и расширения. Команда "openssl x509 -enddate -noout -in cert.pem" показывает только дату истечения срока действия, что удобно в сценариях мониторинга.

Подключение к серверам TLS

Команда "openssl s_client -connect example.com:443 -servername example.com" устанавливает соединение TLS и отображает цепочку сертификатов сервера, согласованную версию TLS и набор шифров. Добавление параметра "-showcerts" отображает все сертификаты в цепочке. Это чрезвычайно полезно для диагностики проблем с цепочкой сертификатов, версией TLS и прикреплением OCSP.

Проверка команды OpenSSL genrsa

Что делает команда "openssl genrsa -aes256 -out private.pem 2048"?

Итоги урока: основы CLI OpenSSL

OpenSSL предоставляет команды для создания ключей (genrsa, genpkey), преобразования форматов (PEM/DER), создания случайных данных (rand), хеширования и подписывания (dgst), шифрования файлов (enc), просмотра сертификатов (x509 -text), проверки цепочек (verify) и диагностики TLS (s_client). Они охватывают подавляющее большинство повседневных задач, связанных с сертификатами и криптографией.

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

Урок «Основы командной строки OpenSSL» бесплатный?

Да — полный текст урока «Основы командной строки OpenSSL» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Основы командной строки OpenSSL»?

Освойте основные команды OpenSSL для генерации ключей, шифрования, хеширования и проверки сертификатов. Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Основы командной строки OpenSSL»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы командной строки OpenSSL
  2. Создание и управление цепочками сертификатов
  3. OCSP Stapling и прозрачность сертификатов
  4. Let's Encrypt и автоматизация протокола ACME
← Назад к Cryptology Academy