OpenSSL — набор инструментов для работы с сертификатами и ключами. Эти команды нужны, когда выпускаете или продлеваете SSL-сертификат, браузер ругается на сайт или надо проверить, что сертификат подходит к ключу.
Посмотреть запрос на сертификат (CSR)
CSR — файл, который отправляют в удостоверяющий центр, чтобы получить сертификат. Перед отправкой стоит проверить, что в нём верные домен и организация:
openssl req -in file.csr -text -noout
Посмотреть сертификат
Выводит всё содержимое: кому выдан, кем, срок действия, дополнительные имена (Subject Alternative Name):
openssl x509 -in file.pem -text
Только срок действия:
openssl x509 -in file.pem -noout -dates
Истекает ли сертификат в ближайшие 30 дней. Удобно для скриптов мониторинга: команда возвращает код 1, если истекает:
openssl x509 -in file.pem -noout -checkend 2592000
Проверить цепочку сертификатов
Проверяет, что сертификат подписан указанным удостоверяющим центром. Если промежуточного сертификата не хватает, команда об этом сообщит:
openssl verify -verbose -CAfile <ca cert file> <certificate file>
Подходит ли ключ к сертификату
Частая ошибка при установке: сертификат от одного ключа, а на сервере лежит другой. Для RSA-ключей сравните отпечатки, они должны совпасть:
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa -noout -modulus -in key.pem | openssl md5
Сертификат работающего сайта
Посмотреть, какой сертификат на самом деле отдаёт сервер и до какого числа он действует:
openssl s_client -connect example.ru:443 -servername example.ru </dev/null | openssl x509 -noout -subject -dates