Шпаргалка OpenSSL
31 октября 2023 г. server cheatsheet
Cобрал команды, которые часто использую в быту, для быстрой копипасты.
Узнать версию OpenSSL:
$openssl version
Просмотр сертификатов
Просмотреть сертификат из файла:
$openssl x509 -noout -text -in 'certfile.cer'
Просмотреть сертификат на порту:
$echo | openssl s_client -showcerts -connect 4te.me:443 </dev/null | openssl x509 -text | less
Просмотреть сертификат на порту с использованием SNI (если на одном адресе висит сразу несколько SSL-сайтов, то перед установкой соедниения нужно передать домен):
$echo | openssl s_client -showcerts -servername 4te.me -connect 4te.me:443 </dev/null | openssl x509 -text
- параметр
-servername
указывает домен для SNI - параметр
-connect
указывает адрес сервера, к которому нужно подключиться
Генерация сертификата
Создать ключ и самоподписанный сертификат на 365 дней (домен указывается в интерактивном режиме в поле Common Name):
$openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privkeyfile.key -out certfile.cer
Создать ключ и самоподписанный сертификат на 365 дней в неинтерактивном режиме:
$openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privkeyfile.key -out certfile.cer -subj "/C=RU/ST=State/L=City/O=CompanyName/OU=CompanySectionName/CN=domain.ru"
Создание сертфиката на основе существующего ключа (для неинтерактивного режима добавить -subj
; см.выше):
$openssl req -x509 -key privkeyfile.key -new -days 365 -out certfile.cer
Получение сертификата
Для получение сертификата из центра сертификации (CA), нужно сгенерировать заявку на получение сертификата – CSR. Она генерируется на основе приватного ключа.
Для начала генерируем ключ БЕЗ пароля:
$openssl genrsa -out privkeyfile.key 2048
Теперь на основе ключа генерируем CSR:
$openssl req -new -key privkeyfile.key -out request.csr
Прочитать CSR:
$openssl req -in request.csr -text -noout
Просмотр ключей
Прочитать файл ключа:
$openssl rsa -text -in privkeyfile.pem -noout
Извлечь публичный ключ из файла:
$openssl rsa -in privkeyfile.pem -pubout