В этом уроке мы рассмотрим различные примеры использования команды openssl, так что вкратце давайте приступим к работе с нашей шпаргалкой по openssl.
- Генерация ключей
- Ключи RSA
- Ключи EC Elliptic Curve (эллиптическая кривая)
- Ключи DSA
- Ключи EdDSA (например, Ed25519)
- Ключ с зашифрованной защитой паролем
- Преобразование ключей между форматами
- Генерация закрытого и открытого ключей
- Генерация сертификата УЦ (CA)
- Создание сертификатов
- Генерирование закрытых ключей
- Сгенерируйте запрос на подписание сертификата (CSR)
- Генерация самоподписанных сертификатов
- Подписание CSR в вашем СA
- Проверка сертификата
- Шифрование и расшифровка файлов
- Шифрование файлов
- Расшифровка файлов
- Шифрование файлов с помощью ключа и IV (вектора инициализации)
- Шифрование и расшифровка с помощью открытых и закрытых ключей
- Проверка и верификация сертификатов
- Генерация сертификата с помощью поля SAN
- Создание и управление CRLs
- Преобразование форматов сертификатов
- Работа с SSL-соединениями
- Управление паролями и хэшами
- Однострочные команды OpenSSL
Генерация ключей
Ключи RSA
Сгенерируем стандартный ключ RSA (2048 бит)
Сгенерируем более сильный ключ RSA (4096 бит).
🔐 Как конвертировать сертификат PFX в файл PEM с помощью OpenSSL?
Генерация ключа RSA с пользовательской экспонентой
Ключи EC Elliptic Curve (эллиптическая кривая)
Сгенерируем ключ EC, используя:
Список всех доступных кривых ЕС
Генерация EC-ключа с явными параметрами
Ключи DSA
Сгенерируйте пару ключей DSA
Ключи EdDSA (например, Ed25519)
Сгенерируем закрытый ключ Ed25519
Ключ с зашифрованной защитой паролем
Сгенерируем ключ RSA, зашифрованный с помощью AES-256
Генерируйте ключ EC с защитой паролем
Преобразование ключей между форматами
Преобразование закрытого ключа из формата PEM в формат DER
🔐 Как конвертировать сертификат PFX в файл PEM с помощью OpenSSL?
Преобразование закрытого ключа в формат PKCS#8
Генерация закрытого и открытого ключей
Генерация пары ключей RSA:
Генерация пары ключей ECDSA:
Извлечем открытый ключ из сертификата:
Генерация сертификата УЦ (CA)
Сгенерируйте корневой ключ
Сгенерируйте корневой сертификат
Теперь вы можете использовать эти ca.crt и ca.key для подписи сертификатов.
🔐 Как создать удостоверяющий центр (УЦ) или Certificate Authority (CA) на Ubuntu
Создание сертификатов
Генерирование закрытых ключей
Во-первых, вам нужен закрытый ключ.
Тип и размер ключа могут варьироваться в зависимости от ваших требований к безопасности.
Закрытый ключ RSA
Закрытый ключ ECDSA
Сгенерируйте запрос на подписание сертификата (CSR)
CSR – это документ, который вы отправляете в центр сертификации (CA) для получения сертификата цифровой идентификации.
Он включает в себя ваш открытый ключ и другую идентификационную информацию.
👩💼 Как создать CSR (запрос на подпись сертификата) в Linux
Использование ключа RSA
Использование ключа ECDSA
Генерация самоподписанных сертификатов
Самоподписанный сертификат с RSA
Самоподписанный сертификат с ECDSA
Подписание CSR в вашем СA
Если вы выступаете в качестве собственного УЦ или имеете доступ к нему, вы можете подписывать CSR для генерации сертификатов.
Проверка сертификата
Проверка сертификата
Шифрование и расшифровка файлов
Шифрование файлов
Зашифруйте файл с помощью AES-256 в режиме CBC
Шифрование файла с помощью AES-256 в режиме GCM
Зашифруйте файл с помощью 3DES
Расшифровка файлов
Расшифровка файла с помощью AES-256 в режиме CBC
Расшифровка файла с помощью AES-256 в режиме GCM
Расшифровка файла с помощью 3DES
Шифрование файлов с помощью ключа и IV (вектора инициализации)
Сгенерируйте случайный ключ и IV для AES-256
Зашифруйте файл, используя сгенерированный ключ и IV
Расшифруйте файл, используя сгенерированный ключ и IV
Шифрование и расшифровка с помощью открытых и закрытых ключей
Зашифруйте файл с помощью открытого ключа RSA
Расшифровка файла с помощью закрытого ключа RSA
Проверка и верификация сертификатов
Просмотр сведений о сертификате
Проверка сертификата в доверенном УЦ
Проверка даты истечения срока действия сертификата
Проверка цепочки сертификатов
Проверка наличия списка отзыва сертификатов (CRL)
Проверка серийного номера сертификата
Проверка алгоритма подписи сертификата
Генерация сертификата с помощью поля SAN
Создайте файл san.cnf со следующим содержимым:
[ req ] default_bits = 2048 prompt = no default_md = sha256 distinguished_name = req_distinguished_name req_extensions = req_ext [ req_distinguished_name ] C = US ST = New York L = Rochester O = Example Corp OU = IT CN = www.example.com [ req_ext ] subjectAltName = @alt_names [ alt_names ] DNS.1 = www.example.com DNS.2 = example.com DNS.3 = subdomain.example.com IP.1 = 192.168.0.1
Сгенерируйте личный ключ с помощью следующей команды:
Используя файл конфигурации и закрытый ключ, сгенерируйте CSR:
Или сгенерировать CSR с помощью однострочной команды openssl
Сгенерируйте самоподписанный сертификат, используя CSR:
Если вы хотите подписать свои ca.crt и ca.key, то можете использовать их:
Убедитесь, что ваш сертификат содержит поля SAN:
Создание и управление CRLs
Создание CRL
Отзыв сертификата
Обновление CRL
Проверка сертификата по CRL
Использование OCSP для проверки состояния сертификата
Настройка OpenSSL для OCSP: добавьте следующее в файл конфигурации openssl.cnf в соответствующий раздел CA:
[ ca ] # OCSP responder URL authorityInfoAccess = OCSP;URI:http://ocsp.server.com [ ocsp ] # OCSP signing configuration default_ca = OCSP_signing
Преобразование CRL в человекочитаемый формат
Преобразование форматов сертификатов
PEM в DER
DER в PEM
Переход от PEM к PKCS#12
Переход от PKCS#12 к PEM
Работа с SSL-соединениями
Протестируйте SSL-соединение:
Просмотр сведений о сертификате сервера:
Проверим протоколы и шифры SSL/TLS:
Список всех шифров:
Управление паролями и хэшами
Создание криптографических хэшей
Функции деривации ключей на основе пароля
Хеширование пароля с помощью соли
Однострочные команды OpenSSL
Генерация ключа RSA и извлечение его открытого ключа
Сгенерируем самоподписанный сертификат с закрытым ключом RSA
Сгенерируем самоподписанный сертификат с закрытым ключом ECC
Создание CSR, самостоятельная подпись и проверка подписи
Шифрование файла и его расшифровка
Сгенерируйте пару ключей ECDSA и проверьте ключ
Создание файла PKCS#12 из файлов PEM и последующее извлечение его содержимого
Хеширование файла и проверка хеша
Сгенерирутем сертификат УЦ и подпишем его
см. также:
- 🔐 Получение MD5-хэша файла с помощью OpenSSL
- 🔐 Каковы различные форматы сертификатов?
- 📡 Передача любых файлов из командной строки – создание собственного безопасного и быстрого сайта временной передачи c Docker