Шпаргалка по OpenSSL

Просмотреть сертификат из файла:

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 дней в неинтерактивном режиме:

penssl 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

После этого файл request.csr отправляется в центр сертификации.Прочитать CSR:

openssl req -in request.csr -text -noout

Прочитать файл ключа:

openssl rsa -text -in privkeyfile.pem -noout

Извлечь публичный ключ из файла:

openssl rsa -in privkeyfile.pem -pubout

Узнать версию OpenSSL:

openssl version