$ command-helper

OpenSSL и сертификаты

Просмотр удалённых и локальных сертификатов, сроки действия, ключи и CSR, конвертация форматов.

Потребуется вход через Google

Удалённые сертификаты

Срок действия сертификата сайта
echo | openssl s_client -connect <domain>:443 -servername <domain> 2>/dev/null | openssl x509 -noout -dates
Кем выпущен сертификат и на какие имена
echo | openssl s_client -connect <domain>:443 -servername <domain> 2>/dev/null | openssl x509 -noout -subject -issuer -ext subjectAltName
Показать всю цепочку сертификатовпродвинутая
openssl s_client -connect <domain>:443 -servername <domain> -showcerts
Проверить конкретную версию TLSпродвинутая
openssl s_client -connect <domain>:443 -tls1_3

Локальные файлы

Прочитать сертификат
openssl x509 -in <cert> -noout -text
Срок действия сертификата из файла
openssl x509 -in <cert> -noout -enddate
Истечёт ли в ближайшие 30 дней?продвинутая
openssl x509 -in <cert> -noout -checkend 2592000
Подходит ли ключ к сертификату?продвинутая
openssl x509 -in <cert> -noout -pubkey | openssl sha256 && openssl pkey -in <key_file> -pubout | openssl sha256

Хэши должны совпасть.

Создание ключей и сертификатов

Самоподписанный сертификат для локальной разработки
openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365 -subj "/CN=localhost"
Приватный ключ и CSR для удостоверяющего центра
openssl req -new -newkey rsa:2048 -nodes -keyout <domain>.key -out <domain>.csr -subj "/CN=<domain>"
Прочитать CSR
openssl req -in <domain>.csr -noout -text

Конвертация и утилиты

PEM в PKCS#12 (.pfx)продвинутая
openssl pkcs12 -export -out bundle.pfx -inkey <key_file> -in <cert>
PKCS#12 в PEMпродвинутая
openssl pkcs12 -in bundle.pfx -out bundle.pem -nodes
Случайный пароль / секрет
openssl rand -base64 32
SHA-256 файла
openssl sha256 <file>
Base64: закодировать и раскодировать
echo -n 'text' | openssl base64 && echo 'dGV4dA==' | openssl base64 -d