Описание утилиты openssl

Описание

OpenSSL — криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Позволяет создавать ключи RSA, DH, DSA и сертификаты X.509, подписывать их, формировать CSR и CRT. Также имеется возможность шифрования данных и тестирования SSL/TLS соединений.

Доступна для большинства UNIX-подобных операционных систем (включая Solaris/OpenSolaris, Linux, Mac OS X, QNX4[4], QNX6 и четырех операционных систем BSD с открытым исходным кодом), а также для OpenVMS и Microsoft Windows.

OpenSSL основана на SSLeay, написанной Эриком Янгом (Eric A. Young) и Тимом Хадсоном (Tim Hudson), которые неофициально закончили работать над ней в декабре 1998 года, когда они начали работать в проекте RSA Security.

Установка

CentOS:
yum install openssl
Debian/Ubuntu:
apt-get install openssl

Примеры использования openssl

Проверка ssl-соединения

Команда s_client позволяет подключаться к удаленным SSL-серверам для их тестирования.
openssl s_client -connect IPADDRESS:443 -cert ./client_cert_public.crt -key ./client_cert_private.key -CAfile  ./Z-Telecom_Client_Payments_CA_with_cert_chain.crt
Где:
-cert должен быть клиентский сертификат,
-key закрытый ключ клиентского сертификата,
-CAfile должны лежать все промежуточные сертификаты и корневой.

В результате, должно установиться HTTPS-соединение, с подробной информацией о сертификатах. В конце будут следующие строки:

   Start Time: 1361446845
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

При вводе с клавиатуры любого символа и последующим нажатием на Enter, соединение прервётся. Только после этого в логи вэб-сервера попадёт запись об обращении к нему. При ошибке, связанной с сертификатами, HTTPS-соединение не состоится и в логи вэб-сервера ничего не попадает.

Создание приватного RSA-ключа

С паролем (длиной 2048 бит):
openssl genrsa -des3 -out private.key 2048
Без пароля (длиной 2048 бит):
openssl genrsa -out private.key 2048

Создание публичного RSA-ключа

На основе приватного RSA-ключа.
openssl rsa -in private.key -pubout -out public_key.pem

Проверка публичного и приватного RSA-ключа

Если необходимо проверить публичный ключ, что он создан от нужного приватного ключа.
diff <(openssl rsa -noout -modulus -pubin -in my_public.key|openssl md5) <(openssl rsa -noout -modulus -in private.key|openssl md5)

Если команда ничего не выведет, то публичный ключ создан от этого приватного ключа.

Просмотр созданного публичного RSA-ключа

openssl x509 -text -noout -in public_key.pem

Создание запроса на получение сертификата (CSR)

На основе приватного RSA-ключа.
openssl req -new -key private.key -out certificate_signing_request.csr
Совмещенная комбинация (создание ключа и запроса одной командой)
openssl req -new -newkey rsa:1024 -keyout private.key -out certificate_signing_request.csr
Совмещенная комбинация с использованием шифрования SHA256 и описанием пользователя сертификата.
openssl req -new -newkey rsa:2048 -keyout private.key -sha256 -out certificate_signing_request.csr -subj "/C=RU/L=SPB/O=Cyberplat/OU=IT Department/CN=cyberplat_test"
где ключи:
CContryName,
LLocalityName,
OOrganizationName,
OUOrganizationUnitName,
CNCommonName.

Просмотр созданного запроса на получение сертификата

openssl req -text -noout -in certificate_signing_request.csr

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *