Шпаргалка по 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