Перейти к основному содержанию

Полезные команды openssl

SSL сертификат

OpenSSL — криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Подготовил шпаргалку со списком полезных команд.

  • CRT — сертификат
  • KEY — ключ
  • CSR — запрос
  • DH — ключ Диффи-Хеллмана
  • PKCS#12 — сертификат с закрытым ключом (PFX, P12)
  • DER — бинарный тип сертификата
  • PEM — Base64 тип сертификата
  • P7B — (PKCS#7) цепочка сертификатов
  • DKIM — (DomainKeys Identified Mail) метод e-mail аутентификации
  • RSA — (Rivest–Shamir–Adleman) криптосистема с открытым ключом

Генерация

Установка openssl в Debian

sudo apt-get install openssl

Генерация приватного KEY

openssl genrsa -out server.key 4096

Генерация пары CSR и KEY

openssl req -out server.csr -new -newkey rsa:2048 -nodes -keyout server.key

Windows 10 — генерация CSR и KEY для SSL сертификатов с помощью подсистемы Linux

Генерация CSR для существующего KEY

openssl req -out server.csr -key server.key -new

Генерация CSR для существующих CRT и KEY

openssl x509 -x509toreq -in server.crt -out server.csr -signkey server.key

Генерация самоподписанного CRT на год

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:4096 -keyout server.key -out server.crt

Генерация v3 CRT для CRT на год

openssl x509 -days 365 -in myCSR.csr -extfile v3.ext -CA myCA.crt -CAkey myCA.key -CAcreateserial -out userCertificate.crt

Пример v3.ext:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment

Генерация PFX

Windows — генерация PFX (PKCS#12) сертификата с помощью подсистемы Linux

Генерация DKIM

Windows 10 — генерация DKIM ключей с помощью подсистемы Linux

Генерация RSA пары

Windows 10 — генерация ключей RSA с помощью подсистемы Linux

Порядок сертификатов в файле

СЕРТИФИКАТ
ПРОМЕЖУТОЧНЫЙ СЕРТИФИКАТ
КОРНЕВОЙ СЕРТИФИКАТ
 cat server.crt > server.pem
 cat intermediate.crt >> server.pem
 cat ca.crt >> server.pem

Генерация DH

openssl dhparam -out dhparam.pem 2048

Проверка

Проверка CSR

openssl req -text -noout -verify -in server.csr
verify OK

Проверка KEY

openssl rsa -in server.key -check
RSA key OK

Проверка публичного KEY

openssl rsa -inform PEM -pubin -in pub.key -text -noout
openssl pkey -inform PEM -pubin -in pub.key -text -noout

Прочитать CRT

openssl x509 -in server.crt -text -noout

Прочитать CSR

openssl req -in server.csr -noout -text

Проверка соответствия CSR и KEY

Должны совпасть хэши сертификата и ключа.

openssl x509 -noout -modulus -in server.crt | md5sum
openssl rsa -noout -modulus -in server.key | md5sum

Проверка соответствия CSR и СRT

Должны совпасть хэши сертификата и запроса.

openssl x509 -noout -modulus -in server.crt | md5sum
openssl req -noout -modulus -in server.csr | md5sum

Проверка PKCS#12

openssl pkcs12 -info -in server.p12

Вывод всех сертификатов

openssl s_client -connect internet-lab.ru:443

Конвертация

Конвертация DER в PEM

openssl x509 -inform der -in server.cer -out server.pem

Конвертация PEM в DER

openssl x509 -outform der -in server.pem -out server.der

Конвертация PKCS#12 в PEM

openssl pkcs12 -in server.pfx -out server.pem -nodes

Windows — конвертация PFX (PKCS#12) сертификата в CRT (PEM) и KEY с помощью подсистемы Linux

Конвертация PEM в PKCS#12

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt -certfile CACert.crt

Windows — конвертация SSL сертификата PEM в формат PFX (PKCS#12) с помощью подсистемы Linux

Конвертация P7B в PEM

Windows — конвертация P7B в PEM с помощью подсистемы Linux

Экспорт

Извлечение публичного KEY из приватного KEY

openssl rsa -in privkey.pem -pubout > key.pub

Извлечение публичного KEY из приватного CRT

openssl x509 -pubkey -noout -in cert.pem  > pubkey.pem

Дополнительные команды

Удаление пароля из приветного KEY

openssl rsa -in server.pem -out newserver.pem

Список отозванных серийных номеров

openssl crl -inform DER -text -noout -in list.crl

Шифрование файлов через rsautl

openssl rsautl -encrypt -in plaintext.txt -out encrypted.txt -pubin -inkey pubkey.pem

Дешифровка файлов через rsautl

openssl rsautl -decrypt -in encrypted.txt -out plaintext.txt -inkey privkey.pem

Ссылки

Установка openssl в Windows 10 и 11 через winget

Теги

 

Похожие материалы

Windows — конвертация PFX (PKCS#12) сертификата в CRT (PEM) и KEY с помощью подсистемы Linux

У меня есть сертификат с закрытым ключом PFX (PKCS#12). Пароль тоже имеется. Задача, вытащить из файла сертификат и ключ в PEM формате.

Теги

Zabbix — срок действия SSL сертификата (2)

Сегодня напишем скрипт для мониторинга срока действия SSL сертификатов наших сайтов. Этот мониторинг пригодится многим. Системным администраторам в крупных компаниях, чтобы не пропустить момент перевыпуска сертификатов. Особенно, если количество сайтов — сотни. Владельцам собственных сайтов. Многие пользуются сервисом Let's Encrypt, особенностью сертификатов которого является короткий срок жизни. Если автоматика обновления сертификатов выйдет из строя, то мониторинг SSL сертификатов поможет выявить проблему до того, как она себя проявит.

Теги