Руководства по командной строке

Man » Онлайн-руководство openssl – подробная онлайн-документация для страницы руководства openssl

🌍
openssl – утилита OpenSSL для командной строки

СИНТАКСИС

openssl команда [ опции ... ] [ параметры ... ]

openssl no-XXX [ опции ]

openssl -help | -version

ОПИСАНИЕ

OpenSSL – это набор инструментов для криптографии, реализующий сетевые протоколы Secure Sockets Layer (SSL) и Transport Layer Security (TLS), а также связанные с ними стандарты криптографии.

Утилита openssl – это командная программа для использования различных функций криптографии библиотеки OpenSSL из командной строки. Она может использоваться для:

o   Создания и управления закрытыми ключами, открытыми ключами и параметрами
o   Операций с открытыми ключами
o   Создания X.509-сертификатов, запросов на подпись сертификатов (CSR) и списков отзыва сертификатов (CRL)
o   Вычисления контрольных сумм сообщений и кодов аутентификации сообщений
o   Шифрования и дешифрования с использованием шифров
o   Тестирования SSL/TLS-клиентов и серверов
o   Обработки S/MIME-подписанных или зашифрованных писем
o   Запросов на отметку времени, генерации и проверки

СВОДКА ПО КОМАНДАМ

Утилита openssl предоставляет широкий спектр команд (команда в "СИНТАКСИСЕ" выше). Каждая команда может иметь множество опций и аргументов, как показано выше.

Подробная документация и примеры использования для большинства стандартных подкоманд доступны (например, openssl-x509(1)). Подкоманда openssl-list(1) может использоваться для перечисления подкоманд.

Команда no-XXX проверяет, доступна ли команда с указанным именем. Если команда с именем XXX не существует, она возвращает 0 (успех) и выводит no-XXX; в противном случае она возвращает 1 и выводит XXX. В обоих случаях вывод направляется в stdout, и ничего не выводится в stderr. Дополнительные аргументы командной строки всегда игнорируются. Поскольку для каждого шифра существует команда с тем же именем, это обеспечивает простой способ для сценариев оболочки проверить доступность шифров в программе openssl. (no-XXX не может обнаруживать псевдокоманды, такие как quit, list или no-XXX).

Опция конфигурации

Многие команды используют внешний файл конфигурации для некоторых или всех своих аргументов и имеют опцию -config для указания этого файла. Имя файла по умолчанию – openssl.cnf, и он находится в каталоге хранения сертификатов по умолчанию, который можно определить с помощью команды openssl-version(1), используя опции -d или -a. Переменная среды OPENSSL_CONF может использоваться для указания другого местоположения файла или для отключения загрузки конфигурации (используя пустую строку).

Среди прочего, файл конфигурации может использоваться для загрузки модулей и указания параметров для генерации сертификатов и случайных чисел. См. config(5) для получения подробной информации.

Стандартные команды

asn1parse
Разбирает последовательность ASN.1.

ca Управление Центром Сертификации (ЦС).

ciphers
Определение описания набора шифров.

cms Команда CMS (Cryptographic Message Syntax).

crl Управление списками отзыва сертификатов (CRL).

crl2pkcs7
Преобразование CRL в PKCS#7.

dgst
Вычисление контрольной суммы сообщения. Вычисление MAC заменено командой openssl-mac(1).

dhparam
Генерация и управление параметрами Диффи-Хеллмана. Заменено командами openssl-genpkey(1) и openssl-pkeyparam(1).

dsa Управление данными DSA.

dsaparam
Генерация и управление параметрами DSA. Заменено командами openssl-genpkey(1) и openssl-pkeyparam(1).

ec Обработка ключей EC (эллиптических кривых).

ecparam
Манипулирование и генерация параметров EC.

enc Шифрование, расшифрование и кодирование.

engine
Информация о модулях (loadable modules) и их управление.

errstr
Преобразование номера ошибки в строку ошибки.

fipsinstall
Установка конфигурации FIPS.

gendsa
Генерация приватного ключа DSA из параметров. Заменено командами openssl-genpkey(1) и openssl-pkey(1).

genpkey
Генерация приватного ключа или параметров.

genrsa
Генерация приватного ключа RSA. Заменено командой openssl-genpkey(1).

help
Отображение информации об опциях команды.

info
Отображение различной информации, встроенной в библиотеки OpenSSL.

kdf Функции вывода ключей.

list
Список алгоритмов и функций.

mac Вычисление кода аутентификации сообщений.

nseq
Создание или проверка последовательности сертификатов Netscape.

ocsp
Команда протокола Online Certificate Status Protocol.

passwd
Генерация хешированных паролей.

pkcs12
Управление данными PKCS#12.

pkcs7
Управление данными PKCS#7.

pkcs8
Команда преобразования приватного ключа в формат PKCS#8.

pkey
Управление публичными и приватными ключами.

pkeyparam
Управление параметрами алгоритмов публичных ключей.

pkeyutl
Команда выполнения криптографических операций с алгоритмами публичных ключей.

prime
Вычисление простых чисел.

rand
Генерация псевдослучайных байтов.

rehash
Создание символических ссылок на файлы сертификатов и CRL, названные значениями их хешей.

req Управление запросами на подпись сертификата X.509 (CSR) в формате PKCS#10.

rsa Управление ключами RSA.

rsautl
Команда RSA для подписи, проверки, шифрования и расшифрования. Заменено командой openssl-pkeyutl(1).

s_client
Реализует обобщенный клиент SSL/TLS, который может устанавливать прозрачное соединение с удаленным сервером, использующим SSL/TLS. Предназначен только для тестирования и предоставляет лишь базовый интерфейс, но внутри использует практически всю функциональность библиотеки OpenSSL ssl.

s_server
Реализует обобщенный сервер SSL/TLS, который принимает соединения от удаленных клиентов, использующих SSL/TLS. Предназначен только для тестирования и предоставляет лишь базовый интерфейс, но внутри использует практически всю функциональность библиотеки OpenSSL ssl. Предоставляет как собственный протокол, ориентированный на командную строку, для тестирования функций SSL, так и простую функцию ответа HTTP для эмуляции веб-сервера, поддерживающего SSL/TLS.

s_time
Таймер SSL-соединения.

sess_id
Управление данными SSL-сессии.

smime
Обработка почты S/MIME.

speed
Измерение скорости алгоритма.

spkac
Команда для печати и генерации SPKAC.

srp
Поддерживает файл паролей SRP. Эта команда устарела.

storeutl
Команда для просмотра и отображения сертификатов, ключей, CRL и т. д.

ts
Команда для центра выдачи временных меток.

verify
Проверка сертификата X.509. См. также страницу руководства openssl-verification-options(1).

version
Информация о версии OpenSSL.

x509
Управление данными сертификата X.509.

Команды для вычисления хеш-значений сообщений

blake2b512
Хеш BLAKE2b-512

blake2s256
Хеш BLAKE2s-256

md2
Хеш MD2

md4
Хеш MD4

md5
Хеш MD5

mdc2
Хеш MDC2

rmd160
Хеш RMD-160

sha1
Хеш SHA-1

sha224
Хеш SHA-2 224

sha256
Хеш SHA-2 256

sha384
Хеш SHA-2 384

sha512
Хеш SHA-2 512

sha3-224
Хеш SHA-3 224

sha3-256
Хеш SHA-3 256

sha3-384
Хеш SHA-3 384

sha3-512
Хеш SHA-3 512

keccak-224
Хеш KECCAK 224

keccak-256
Хеш KECCAK 256

keccak-384
Хеш KECCAK 384

keccak-512
Хеш KECCAK 512

shake128
Хеш SHA-3 SHAKE128

shake256
Хеш SHA-3 SHAKE256

sm3
Хеш SM3

Команды для шифрования, дешифрования и кодирования

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

В зависимости от того, как был настроен и собран OpenSSL, не все перечисленные здесь шифры могут присутствовать. См. openssl-enc(1) для получения дополнительной информации.

aes128, aes-128-cbc, aes-128-cfb, aes-128-ctr, aes-128-ecb, aes-128-ofb
Шифр AES-128

aes192, aes-192-cbc, aes-192-cfb, aes-192-ctr, aes-192-ecb, aes-192-ofb
Шифр AES-192

aes256, aes-256-cbc, aes-256-cfb, aes-256-ctr, aes-256-ecb, aes-256-ofb
Шифр AES-256

aria128, aria-128-cbc, aria-128-cfb, aria-128-ctr, aria-128-ecb, aria-128-ofb
Шифр Aria-128

aria192, aria-192-cbc, aria-192-cfb, aria-192-ctr, aria-192-ecb, aria-192-ofb
Шифр Aria-192

aria256, aria-256-cbc, aria-256-cfb, aria-256-ctr, aria-256-ecb, aria-256-ofb
Шифр Aria-256

base64
Кодирование Base64

bf, bf-cbc, bf-cfb, bf-ecb, bf-ofb
Шифр Blowfish

camellia128, camellia-128-cbc, camellia-128-cfb, camellia-128-ctr, camellia-128-ecb,
camellia-128-ofb
Шифр Camellia-128

camellia192, camellia-192-cbc, camellia-192-cfb, camellia-192-ctr, camellia-192-ecb,
camellia-192-ofb
Шифр Camellia-192

camellia256, camellia-256-cbc, camellia-256-cfb, camellia-256-ctr, camellia-256-ecb,
camellia-256-ofb
Шифр Camellia-256

cast, cast-cbc
Шифр CAST

cast5-cbc, cast5-cfb, cast5-ecb, cast5-ofb
Шифр CAST5

chacha20
Шифр Chacha20

des, des-cbc, des-cfb, des-ecb, des-ede, des-ede-cbc, des-ede-cfb, des-ede-ofb, des-ofb
Шифр DES

des3, desx, des-ede3, des-ede3-cbc, des-ede3-cfb, des-ede3-ofb
Шифр Triple-DES

idea, idea-cbc, idea-cfb, idea-ecb, idea-ofb
Шифр IDEA

rc2, rc2-cbc, rc2-cfb, rc2-ecb, rc2-ofb
Шифр RC2

rc4
Шифр RC4

rc5, rc5-cbc, rc5-cfb, rc5-ecb, rc5-ofb
Шифр RC5

seed, seed-cbc, seed-cfb, seed-ecb, seed-ofb
Шифр SEED

sm4, sm4-cbc, sm4-cfb, sm4-ctr, sm4-ecb, sm4-ofb
Шифр SM4

ОПЦИИ

Детали доступных опций зависят от конкретной команды. В этом разделе описаны некоторые общие опции с общим поведением.

Опции программы

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

-help
Предоставляет краткое описание всех опций. Для получения более подробной информации каждая команда поддерживает опцию -help. Также принимает --help.

-version
Предоставляет краткое описание версии программы openssl. Для получения более подробной информации см. openssl-version(1). Также принимает --version.

Общие опции

-help
Если опция принимает аргумент, также указывается "тип" аргумента.

-- Это завершает список опций. Это особенно полезно, если какие-либо параметры файлов начинаются со знака минус:

openssl verify [flags...] -- -cert1.pem...

Опции форматирования

См. страницу руководства openssl-format-options(1).

Опции парольной фразы

См. страницу руководства openssl-passphrase-options(1).

Опции состояния генератора случайных чисел

До версии OpenSSL 1.1.1 было принято, что приложения хранят информацию о состоянии генератора случайных чисел в файле, который загружался при запуске и перезаписывался при выходе. В современных операционных системах это обычно больше не требуется, поскольку OpenSSL будет использовать источник энтропии, предоставляемый операционной системой. Эти флаги по-прежнему поддерживаются для специальных платформ или обстоятельств, которые могут потребовать их.

Как правило, использование одного и того же файла seed более одного раза является ошибкой, и каждое использование -rand должно сочетаться с -writerand.

-rand files
Файл или файлы, содержащие случайные данные, используемые для инициализации генератора случайных чисел. Можно указать несколько файлов, разделив их разделителем, зависящим от ОС. Разделитель — ";" для MSWindows, "," для OpenVMS и ":" для всех остальных. Другой способ указать несколько файлов — повторить этот флаг с разными именами файлов.

-writerand file
Записывает данные seed в указанный файл при выходе. Этот файл можно использовать в последующем вызове команды.

Опции проверки сертификатов

См. страницу руководства openssl-verification-options(1).

Опции формата имени

См. страницу руководства openssl-namedisplay-options(1).

Опции версии TLS

Некоторые команды используют SSL, TLS или DTLS. По умолчанию команды используют TLS, и клиенты предлагают самую низкую и самую высокую поддерживаемую версию протокола, а серверы выбирают самую высокую версию, которую предлагает клиент и которая также поддерживается сервером.

Следующие опции можно использовать для ограничения используемых версий протокола и того, используется ли TCP (SSL и TLS) или UDP (DTLS). Обратите внимание, что не все протоколы и флаги могут быть доступны, в зависимости от того, как был скомпилирован OpenSSL.

-ssl3, -tls1, -tls1_1, -tls1_2, -tls1_3, -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2, -no_tls1_3
Эти опции требуют или отключают использование указанных протоколов SSL или TLS. Когда требуется определенная версия TLS, будет предложена или принята только эта версия. Можно указать только один конкретный протокол, и его нельзя комбинировать ни с одной из опций no_. Опции no_\* не работают с командами s_time и ciphers, но работают с командами s_client и s_server.

-dtls, -dtls1, -dtls1_2

Эти опции указывают на использование DTLS вместо TLS. При использовании опции -dtls клиенты будут согласовывать любую поддерживаемую версию протокола DTLS. Используйте опции -dtls1 или -dtls1_2, чтобы поддерживать только DTLS1.0 или DTLS1.2 соответственно.

Опции движка

-engine id

Загрузите движок, идентифицированный по id, и используйте все методы, которые он реализует (алгоритмы, хранение ключей и т. д.), если иное не указано в документации для конкретной команды или если это не настроено, как описано в разделе «Конфигурация движка» в config(5).

Движок будет использоваться для идентификаторов ключей, указанных с помощью опций -key и подобных, когда используется опция, подобная -keyform engine.

Особым случаем является движок "loader_attic", который предназначен только для внутренних целей тестирования OpenSSL и поддерживает загрузку ключей, параметров, сертификатов и списков отзыва сертификатов из файлов. При использовании этого движка файлы, содержащие такие учетные данные, считываются через этот движок. Использование схемы "file:" является необязательным; достаточно просто указать имя файла (путь).

Опции, указывающие ключи, такие как -key и аналогичные, могут использовать универсальную схему URI для загрузки ключей OpenSSL "org.openssl.engine:", чтобы получить закрытые и открытые ключи. Синтаксис URI в упрощенной форме выглядит следующим образом:

org.openssl.engine:{engineid}:{keyid}

Где "{engineid}" — это идентификатор/имя движка, а "{keyid}" — это идентификатор ключа, который принимается этим движком. Например, при использовании движка, который взаимодействует с реализацией PKCS#11, универсальный URI ключа будет выглядеть примерно так (это пример для движка PKCS#11, который входит в OpenSC):

-key org.openssl.engine:pkcs11:label_some-private-key

Как третий вариант, для движков и поставщиков, которые реализовали свою собственную OSSL_STORE_LOADER(3), "org.openssl.engine:" не требуется. Для реализации PKCS#11, которая реализовала такую программу загрузки, можно напрямую использовать URI PKCS#11, определенный в RFC 7512:

-key pkcs11:object=some-private-key;pin-value=1234

Опции поставщика

-provider name

Загрузите и инициализируйте поставщик, идентифицированный по имени. Имя также может быть путем к модулю поставщика. В этом случае имя поставщика будет указанным путем, а не только именем модуля поставщика. Интерпретация относительных путей зависит от платформы. Настроенный путь "MODULESDIR", переменная среды OPENSSL_MODULES или путь, указанный с помощью -provider-path, добавляются к относительным путям. См. provider(7) для более подробного описания.


-provider-path path

Указывает путь поиска, который будет использоваться для поиска провайдеров. Кроме того, можно установить переменную окружения OPENSSL_MODULES.

-provparam [name:]key=value

Устанавливает значение параметра конфигурации key в value в указанном провайдере (необязательно). Если имя не указано, настройка будет применена ко всем загруженным провайдерам. Этот параметр можно указать несколько раз, чтобы установить несколько параметров. Параметры, которые указывают на загрузку провайдеров, отличных от провайдеров по умолчанию, должны предшествовать этому параметру, если настройка предназначена для применения к загружаемым провайдерам. Параметры, которые влияют только на инициализацию провайдера, в настоящее время должны быть установлены в файле конфигурации, и только параметры, которые также запрашиваются по мере необходимости, будут иметь какой-либо эффект при установке через этот интерфейс. Поддерживаются только параметры строкового типа UTF8. См. документацию для конкретного провайдера и связанных алгоритмов для получения информации о поддерживаемых параметрах.

-propquery propq

Указывает предложение для запроса свойств, которое будет использоваться при извлечении алгоритмов из загруженных провайдеров. См. property(7) для получения более подробной информации.

ОКРУЖАЮЩАЯ СРЕДА

Библиотеки OpenSSL могут принимать некоторые параметры конфигурации из окружения.

Для получения информации обо всех переменных окружения, используемых библиотеками OpenSSL, таких как OPENSSL_CONF, OPENSSL_MODULES и OPENSSL_TRACE, см. openssl-env(7).

Для получения информации об использовании переменных окружения в конфигурации см. раздел "ОКРУЖАЮЩАЯ СРЕДА" в config(5).

Для получения информации о конкретных командах см. openssl-engine(1), openssl-rehash(1) и tsget(1).

Для получения информации о запросе или указании флагов архитектуры ЦП см. OPENSSL_ia32cap(3), OPENSSL_s390xcap(3) и OPENSSL_riscvcap(3).

СМ. ТАКЖЕ

openssl-asn1parse(1), openssl-ca(1), openssl-ciphers(1), openssl-cms(1), openssl-crl(1),
openssl-crl2pkcs7(1), openssl-dgst(1), openssl-dhparam(1), openssl-dsa(1), openssl-dsaparam(1),
openssl-ec(1), openssl-ecparam(1), openssl-enc(1), openssl-engine(1), openssl-errstr(1),
openssl-gendsa(1), openssl-genpkey(1), openssl-genrsa(1), openssl-kdf(1), openssl-list(1),
openssl-mac(1), openssl-nseq(1), openssl-ocsp(1), openssl-passwd(1), openssl-pkcs12(1),
openssl-pkcs7(1), openssl-pkcs8(1), openssl-pkey(1), openssl-pkeyparam(1), openssl-pkeyutl(1),
openssl-prime(1), openssl-rand(1), openssl-rehash(1), openssl-req(1), openssl-rsa(1),
openssl-rsautl(1), openssl-s_client(1), openssl-s_server(1), openssl-s_time(1),
openssl-sess_id(1), openssl-smime(1), openssl-speed(1), openssl-spkac(1), openssl-srp(1),
openssl-storeutl(1), openssl-ts(1), openssl-verify(1), openssl-version(1), openssl-x509(1),
config(5), crypto(7), openssl-env(7). ssl(7), x509v3_config(5)

ИСТОРИЯ

Опции -XXX-algorithms были добавлены в OpenSSL 1.0.0; для получения примечаний о доступности других команд см. их отдельные страницы руководства.


Опция -issuer_checks устарела, начиная с OpenSSL 1.1.0, и игнорируется.

Опции -xcertform и -xkeyform устарели, начиная с OpenSSL 3.0, и не имеют никакого эффекта.

Интерактивный режим, который можно было запустить, выполнив команду "openssl" без дополнительных аргументов, был удален в OpenSSL 3.0, и выполнение этой программы без аргументов теперь эквивалентно команде "openssl help".

АВТОРСКИЕ ПРАВА

Copyright 2000-2025 The OpenSSL Project Authors. Все права защищены.

Лицензировано в соответствии с лицензией Apache License 2.0 (далее — «Лицензия»). Вы не можете использовать этот файл, за исключением случаев, когда это соответствует условиям Лицензии. Вы можете получить копию в файле LICENSE в исходном дистрибутиве или по адресу [https://www.openssl.org/source/license.html].