OpenSSL и сертификаты
Просмотр удалённых и локальных сертификатов, сроки действия, ключи и CSR, конвертация форматов.
Удалённые сертификаты
Срок действия сертификата сайта
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 32SHA-256 файла
openssl sha256 <file>
Base64: закодировать и раскодировать
echo -n 'text' | openssl base64 && echo 'dGV4dA==' | openssl base64 -d