Запомнить все команды наизусть, и помнить их вечно — дело непростое. Вообще не рекомендую этого делать, как бы это странно не звучало. Как по мне лучше хорошо уметь пользоваться справочником, чем изрядно забивать голову большим объемом информации, большая часть которой будет забыта, всё потому что не пригодилась в течении длительного времени.
Данный пост можно назвать даже шпаргалкой, которая будет у вас под рукой, здесь находится выжимка из наиболее популярных команд OpenSSL. OpenSLL является универсальным инструментом, который доступен для разных платформ, среди которых есть и Linux. Данный инструмент имеет достаточно полезных фич для работы с сертификатами и ключами.
Создание нового приватного ключа и CSR запроса
openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout private.key
Создание самоподписного сертификата
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out certificate.crt
Создание CSR запроса для существующего приватного ключа
openssl req -out CSR.csr -key private.key –new
Создание нового CSR запроса на основе существующего сертификата
openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey private.key
Удаление секретной фразы-пароля из приватного ключа
openssl rsa -in private.pem -out newPrivate.pem
Все выше перечисленные команды предназначены для создания CSR запросов, сертификатов, приватных ключей, и др. задач. Так же существуют команды для просмотра данных о сертификате, CSR, закрытых ключей, далее по тексту.
Проверка CSR запроса
openssl req -text -noout -verify -in CSR.csr
Проверка приватного ключа
openssl rsa -in privateKey.key -check
Проверка сертификата
openssl x509 -in certificate.crt -text -noout
Проверка файла PKCS#12 (.pfx или .p12)
openssl pkcs12 -info -in keyStore.p12
Иногда могут появляться сообщения об ошибке, на подобии того что ключ не соответствует сертификату, или же сертификат не является доверенным. Для решения подобного рода проблем можно попробовать воспользоваться следующими командами.
openssl x509 -noout -modulus -in certificate.crt | openssl md5 openssl rsa -noout -modulus -in private.key | openssl md5 openssl req -noout -modulus -in CSR.csr | openssl md5
Эти команды проверяют MD5-хеш открытого ключа на соответствие с CSR и приватного ключа.
Так же можно произвести проверку SSL соединения:
openssl s_client -connect www.paypal.com:443
Так же при необходимости есть возможность преобразовать сертификаты и ключи в другие форматы. Делается это обычно для совместимости с конкретными типами серверов и программного обеспечения.
Конвертирование файла DER (.crt .cer .der) в PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
Конвертирование файла PEM в DER:
openssl x509 -outform der -in certificate.pem -out certificate.der
Конвертирование файла PKCS#12, содержащий приватный ключ и сертификат в PEM:
openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
Конвертирование PEM файла и приватного ключа в PKCS # 12:
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt -certfile CACert.crt