Команды OpenSSL
В случае утери пароля или файла ключа придется заказывать пересоздание сертификата.
- Генерация CSR-запроса:
openssl req -new -key cert.key -out cert.csr
Имя домена на который создается запрос прописывается в Common Name — example.com, A challenge password и An optional company name вводить не нужно (просто нажимаем enter).
- Создание ключа и запроса с данными одной командой:
openssl req -batch -new -newkey rsa:2048 -nodes -keyout cert.key -subj '/C=RU/ST=Moscow/L=Moscow/O=Jingel Inc/OU=Research team/emailAddress=root@example.com/CN=example.com' -out cert.csr
- Создание ключа и самоподписанного сертификата одной командой:
openssl req -newkey rsa:1024 -nodes -keyout server.key -out server.crt -x509 -days 3650 -subj \ "/C=XX/ST=XX/L=XX/O=XX/OU=XX/CN=example.com/emailAddress mw-headline" >Как изменить ssl-сертификат, выданный при регистрации сервера?# openssl req -new -newkey rsa:1024 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 5000 -out /etc/pki/tls/certs/localhost.crtДалее отвечаете на вопросы и перезапускаете сервер Apache.
Помощь
Используйте криптографический протокол SSL для защиты и сертификации ваших данных. Для работы с SSL сертификатами на Unix-подобных серверах используйте утилиту openssl. Наиболее распространенные команды этой утилиты приведены ниже.
Для получения полного описания утилиты openssl и ее команд выполните команду
man opensslСоздание ключа
Для создания ключа для SSL-сертификата используйте команду openssl req. Например,
openssl req -batch -noout -new -newkey rsa:2048 -nodes -keyout cert.key где -batch - используется для отсутствия вопросов во время генерации ключа; -noout - означает не выводить результаты команды; -new - создает новый запрос; -newkey rsa:2048 - генерирует новый ключ размером 2048 бит; -nodes - не шифрует ключ; -keyout cert.key - указывает файл, в котором хранить ключ.Если файл с ключом или пароль утеряны, то необходимо перезаказать сертификат.
Создание запроса на создание сертификата
CSR-запрос (Certificate Signing Request) - запрос на получение сертификата. Для создания запроса используйте команду
openssl req -new -key cert.key -out cert.csr где cert.key - файл с закрытым ключом, cert.csr - файл вывода.Создание ключа и самоподписанного сертификата
openssl req -newkey rsa:1024 -nodes -keyout server.key -out server.crt -x509 -days 3650 -subj \ "/C=XX/ST=XX/L=XX/O=XX/OU=XX/CN=mydomain.ru/emailAddress padding: 1em; border: 1px dashed #2f6fab; font-size: 0.9em; line-height: 1.3em; background-color: #f9f9f9;"> openssl rsa -in cert.key -out cert.keyВведите пароль из консоли.
Просмотр данных сертификата и CSR
openssl x509 -noout -text -in cert.crt - для просмотра данных сертификата; openssl req -noout -text -in cert.csr - для просмотра данных CSR.Проверка соответствия ключей
Проверьте, соответствует ли ключ сертификату, выполнив команды
openssl x509 -noout -modulus -in cert.crt | openssl md5 openssl rsa -noout -modulus -in cert.key | openssl md5Значения ключей в командах должны совпадать.
Проверка подключения по HTTPS
openssl s_client -connect localhost:443 -state -debugУбедитесь, что в результате выполнения команды установлено соединение.
Выполните команду для проверки почты по защищенному протоколу
openssl s_client -connect localhost:993 -showcertsИзменение SSL-сертификата, который был выдан при регистрации сервера
openssl req -new -newkey rsa:1024 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 5000 -out /etc/pki/tls/certs/localhost.crtВ процессе выполнение команды ответьте на вопросы и перезапустите веб-сервер по окончании.
Openssl x509 как посмотреть сертификат
Проверка версии OpenSSL
Определение используемой версии OpenSSL является важным первым шагом в подготовке генерации приватного ключа и запроса CSR. Ваша версия OpenSSL диктует криптографический алгоритм, который может использовать для генерации ключей и поддерживаемый протокол. К примеру, OpenSSL version 1.0.1 является первой версией, поддерживающей TLS 1.1 и TLS 1.2. Знание используемой версииf OpenSSL также важно когда вы решаете возникшие в процессе проблемы.
Команда для определения версии OpenSSL:
openssl version -aВ этой команде, " -a " включит отображение следующей информации:
- Номер версии и дата выхода (OpenSSL 1.0.2g 1 Mar 2016).
- Опции библиотеки (options).
- название директории где находятся сертификат и приватные ключи (OPENSSLDIR).
При вводе команды openssl version -a появится информация такого вида:
OpenSSL 1.0.2g 1 Mar 2016 built on: reproducible build, date unspecified platform: debian-amd64 options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) compiler: cc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS - D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -g -O2 -fstack-protector- strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,- Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int - DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 - DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM - DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM OPENSSLDIR: "/usr/lib/ssl"
OpenSSL and CSR Creation
Первым шагом к получению SSL-сертификата является использование OpenSSL для создания запроса подписи сертификата (CSR), который может быть отправлен в центр сертификации (CA) (например, DigiCert). CSR содержит общее имя (ы), которое вы хотите, чтобы ваш сертификат был защищен, информация о вашей компании и ваш открытый ключ. Чтобы создать CSR, он должен иметь закрытый ключ, из которого извлекается открытый ключ. Это можно сделать, используя существующий закрытый ключ или создав новый закрытый ключ.
Примечание по безопасности. Из-за проблем с безопасностью, связанных с использованием существующего закрытого ключа, а также потому, что очень просто и совершенно бесплатно создавать закрытый ключ, мы рекомендуем создавать новый закрытый ключ при создании CSR.
Выбор вариантов генерации ключей
При создании ключа вы должны решить три вещи:
- Алгоритм ключа Key Algorithm,
- размер ключа Key Size
- использование кодовой фразы Passphrase
Для ключевого алгоритма вам необходимо учитывать его совместимость. По этой причине мы рекомендуем использовать RSA. Однако, если у вас есть конкретная необходимость использовать другой алгоритм (например, ECDSA), вы также можете использовать его, но помните о проблемах совместимости, с которыми вы можете столкнуться.
Примечание. В этом руководстве рассматриваются только генераторы ключей с использованием алгоритма RSA.
Для размера ключа вам необходимо выбрать длину бита не менее 2048 при использовании RSA и 256 при использовании ECDSA; это самый маленький размер ключа, разрешенные для сертификатов SSL. Если вам не нужен более крупный размер ключа, мы рекомендуем придерживаться 2048 с RSA и 256 с ECDSA.
Примечание. В старых версиях OpenSSL, если не задан размер ключа, используется размер ключа по умолчанию 512. Любой размер ключа ниже 2048 считается незащищенным и никогда не должен использоваться.
Для ключевой фразы вам нужно решить, хотите ли вы ее использовать. Если используется, закрытый ключ будет зашифрован с использованием указанного метода шифрования, и его невозможно будет использовать без кодовой фразы. Потому что есть плюсы и минусы с обоими опциями, важно понимать последствия использования или не использования кодовой фразы. В этом руководстве мы не будем использовать кодовую фразу в наших примерах.
Создание приватного ключа
После принятия решения по алгоритму и размеру ключа, а также использованию кодовой фразы вы можете приступить к генерации своего закрытого (приватного) ключа.
Используйте следующую команду для генерации вашего закрытого ключа с использованием алгоритма RSA:
openssl genrsa -out yourdomain.key 2048
Эта команда генерирует закрытый ключ в вашем текущем каталоге с именем yourdomain.key (-out yourdomain.key) с использованием алгоритма RSA (genrsa) с длиной ключа 2048 бит (2048). Сгенерированный ключ создается с использованием формата OpenSSL под названием PEM.
Используйте следующую команду для просмотра необработанного, закодированного содержимого (формат PEM) закрытого ключа:
cat yourdomain.key
Несмотря на то, что содержимое файла может выглядеть как случайный фрагмент текста, на самом деле он содержит важную информацию о ключе. Используйте следующую команду для декодирования закрытого ключа и просмотра его содержимого:
openssl rsa -text -in yourdomain.key -noout
Переключатель -noout отключает вывод кодированной версии закрытого ключа.
Извлечение открытого ключа
Файл закрытого ключа содержит как закрытый ключ, так и открытый ключ. Вы можете извлечь свой открытый ключ из своего файла закрытого ключа, если это необходимо.
Используйте следующую команду для извлечения открытого ключа:
openssl rsa -in yourdomain.key -pubout -out yourdomain_public.key
Создание CSR
После создания секретного ключа вы готовы создать свою CSR. CSR создается с использованием формата PEM и содержит часть открытого ключа закрытого ключа, а также информацию о вас (или вашей компании).
Используйте следующую команду для создания CSR с использованием только что созданного закрытого ключа:
openssl req -new -key yourdomain.key -out yourdomain.csr
После ввода команды вам будет задан ряд вопросов. Ваши ответы на эти вопросы будут включены в CSR. Ответьте на вопросы, как описано ниже:
Country Name (2 letter code) | The two-letter country code where your company is legally located. |
State or Province Name (full name) | The state/province where your company is legally located. |
Locality Name (e.g., city) | The city where your company is legally located. |
Organization Name (e.g., company) | Your company's legally registered name (e.g., YourCompany, Inc.). |
Organizational Unit Name (e.g., section) | The name of your department within the organization. (You can leave this option blank; simply press Enter.) |
Common Name (e.g., server FQDN) | The fully-qualified domain name (FQDN) (e.g., www.example.com). |
Email Address | Your email address. (You can leave this option blank; simply press Enter.) |
A challenge password | Leave this option blank (simply press Enter). |
An optional company name | Leave this option blank (simply press Enter). |
Некоторые из вышеуказанных вопросов CSR имеют значения по умолчанию, которые будут использоваться, если вы оставите пустой ответ и нажмите Enter. Эти значения по умолчанию извлекаются из файла конфигурации OpenSSL, расположенного в OPENSSLDIR (см. Проверка версии OpenSSL). Если вы хотите оставить вопрос пустым, не используя значение по умолчанию, введите «.». (период) и нажмите Enter.
Использование переключателя -subj
Другим вариантом при создании CSR является предоставление всей необходимой информации внутри самой команды с помощью -subj-переключателя.
Используйте следующую команду, чтобы отключить приглашения к запросам при создании CSR:
openssl req -new -key yourdomain.key -out yourdomain.csr \ -subj "/C=US/ST=Utah/L=Lehi/O=Your Company, Inc./OU=IT/CN=yourdomain.com"
This command uses your private key file (-key yourdomain.key) to create a new CSR (-out yourdomain.csr) and disables question prompts by providing the CSR information (-subj).
Создание CSR с помощью одной команды
Вместо того, чтобы генерировать закрытый ключ, а затем создавая CSR двумя разными шагами, вы можете одновременно выполнять обе задачи.
Используйте следующую команду для создания как закрытого ключа, так и CSR:
openssl req -new \ -newkey rsa:2048 -nodes -keyout yourdomain.key \ -out yourdomain.csr \ -subj "/C=US/ST=Utah/L=Lehi/O=Your Company, Inc./OU=IT/CN=yourdomain.com"
Эта команда генерирует новый закрытый ключ (-newkey) с использованием алгоритма RSA с длиной ключа 2048 бит (rsa: 2048) без использования парольной фразы (-nodes), а затем создает файл ключа с именем yourdomain.key (- keyout yourdomain.key). Затем команда cгенерирует CSR с именем файла yourdomain.csr (-out yourdomain.csr), информация для CSR предоставляется (-subj).
Примечание. Хотя возможно добавление альтернативного имени объекта (SAN) в CSR с использованием OpenSSL, процесс немного сложнее. Если вам нужно добавить SAN в свой сертификат, это легко сделать, добавив их в виде примечания в форму заказа при покупке вашего сертификата ssl.
Проверка информации CSR
После создания вашей CSR с помощью секретного ключа мы рекомендуем проверить правильность информации, содержащейся в CSR, и что файл не был изменен или поврежден.
Используйте следующую команду для просмотра информации в вашей CSR перед отправкой ее в сертификационный центр.
openssl req -text -in yourdomain.csr -noout -verify
Переключатель -noout отключает вывод кодированной версии CSR. Переключатель -verify проверяет подпись файла, чтобы убедиться, что он не был изменен. Выполнение этой команды дает вам следующий результат:
verify OK Certificate Request: Data: Version: 0 (0x0) Subject: C=US, ST=Utah, L=Lehi, O=Your Company, Inc., OU=IT, CN=yourdomain.com Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:bb:31:71:40:81:2c:8e:fb:89:25:7c:0e:cb:76: [. 17 lines removed] Exponent: 65537 (0x10001) Attributes: a0:00 Signature Algorithm: sha256WithRSAEncryption 0b:9b:23:b5:1f:8d:c9:cd:59:bf:b7:e5:11:ab:f0:e8:b9:f6: [. 14 lines removed]
В первой строке выведенного выше вы увидите, что CSR была проверена (verify OK).
В четвертой строке поле Subject: содержит информацию, предоставленную вами при создании CSR. Убедитесь, что эта информация верна.
Если какая-либо информация неверна, вам нужно будет создать совершенно новІй запрос CSR для исправления ошибок. Это связано с тем, что файлы CSR имеют цифровую подпись, что означает, что даже если в файле изменяется один символ, он будет отклонен центром сертификации.
Отправка CSR в CA
Когда вы подготовите запрос CSR для оформления сертификата SSL, вам нужно использовать формат PEM - необработанный, закодированный текст CSR, который вы увидите при открытии его в текстовом редакторе.
Для того, чтобы просмотреть исходный вывод CSR:
cat yourdomain.csr
Вам надо скопировать содержимое (включая -----BEGIN CERTIFICATE REQUEST----- и -----END CERTIFICATE REQUEST----- вместе с черточками) вставить в текстовый документ и направить в компанию, которая оформляет для вас сертификат ssl.
Просмотр информации о сертификате
После получения сертификата от CA (например, DigiCert) мы рекомендуем убедиться, что информация в сертификате верна и соответствует вашему закрытому ключу. Вы делаете это, используя команду x509.
Используйте следующую команду для просмотра содержимого вашего сертификата:
openssl x509 -text -in yourdomain.crt -noout
Проверка соответствия ваших ключей
Чтобы проверить соответствие ваших общих и закрытых ключей, используйте ключ -modulus для генерации хэша вывода для всех трех файлов (закрытый ключ, CSR и сертификат).
Используйте следующие команды для генерации хэша модуля каждого файла:
openssl rsa -modulus -in yourdomain.key -noout | openssl sha256
openssl req -modulus -in yourdomain.csr -noout | openssl sha256
openssl x509 -modulus -in yourdomain.crt -noout | openssl sha256
Примечание. Вышеприведенные команды должны вводиться один за другим для генерации трех отдельных выходов.
Каждая команда выведет (stdin) =, а затем строку символов. Если результат каждой команды соответствует, то ключи для каждого файла одинаковы.
Однако, если есть какое-либо несоответствие, то ключи не совпадают, и сертификат не может быть установлен.
Ошибки рассогласования ключей обычно вызваны установкой сертификата на машине, отличной от той, которая используется для генерации CSR. Если вы столкнулись с ошибкой несоответствия ключа, вам необходимо выполнить одно из следующих действий:
- Перенесите закрытый ключ из машины, используемой для генерации CSR, к тому, к которому вы пытаетесь установить сертификат.
- Установите сертификат на машине с помощью закрытого ключа.
- Создайте совершенно новый ключ и создайте новый CSR на машине, которая будет использовать сертификат.
Преобразование форматов сертификатов
По умолчанию OpenSSL генерирует ключи и CSR, используя формат PEM. Однако могут быть случаи, когда вам нужно преобразовать свой ключ или сертификат в другой формат, чтобы экспортировать его в другую систему.
PEM для PKCS # 12
Формат PKCS # 12 представляет собой архивный файл, в котором хранятся как сертификат, так и закрытый ключ. Этот формат полезен для переноса сертификатов и ключей из одной системы в другую, так как содержит все необходимые файлы. Файлы PKCS # 12 используют либо расширение .pfx, либо .p12.
Используйте следующую команду для преобразования вашего ключа PEM и сертификата в формат PKCS # 12 (т. Е. Один файл .pfx):
openssl pkcs12 -export -name "yourdomain-digicert-(expiration date)" \ -out yourdomain.pfx -inkey yourdomain.key -in yourdomain.crt
Примечание. После ввода команды вам будет предложено указать пароль для шифрования файла. Поскольку формат PKCS # 12 часто используется для миграции системы, мы рекомендуем шифровать файл с помощью очень надежного пароля. Эта команда объединяет ваш закрытый ключ (-inkey yourdomain.key) и ваш сертификат (-in yourdomain.crt) в один файл .pfx (-out yourdomain.pfx) с дружественным именем (-name «yourdomain-digicert- (expiration дата) "), где дата истечения срока действия сертификата истекает.
PKCS № 12 для PEM
Поскольку формат PKCS # 12 содержит как сертификат, так и закрытый ключ, вам нужно использовать две отдельные команды для преобразования файла .pfx в формат PEM.
Используйте следующую команду, чтобы извлечь закрытый ключ из файла PKCS # 12 (.pfx) и преобразовать его в закрытый ключ, закодированный PEM:
openssl pkcs12 -in yourdomain.pfx -nocerts -out yourdomain.key -nodes
Используйте следующую команду для извлечения сертификата из файла PKCS # 12 (.pfx) и преобразования его в сертификат, закодированный PEM:
openssl pkcs12 -in yourdomain.pfx -nokeys -clcerts -out yourdomain.crt
Примечание. Вам необходимо указать пароль, используемый для шифрования файла .pfx, чтобы преобразовать ключ и сертификат в формат PEM.
Формат DER использует кодировку ASN.1 для хранения сертификата или ключевой информации. Подобно формату PEM, DER хранит информацию о ключах и сертификатах в двух отдельных файлах и обычно использует те же расширения файлов (то есть .key, .crt и .csr). Расширение файла .der было использовано в приведенных ниже примерах для ясности.
Используйте следующую команду для преобразования сертификата, закодированного в PEM, в сертификат, закодированный DER:
openssl x509 -inform PEM -in yourdomain.crt -outform DER -out yourdomain.der
Используйте следующую команду для преобразования закрытого ключа, закодированного в PEM, в закрытый закрытый ключ DER:
openssl rsa -inform PEM -in yourdomain.key -outform DER -out yourdomain_key.der
DER to PEM Используйте следующую команду для преобразования закодированного DER сертификата в сертификат, закодированный PEM:
openssl x509 -inform DER -in yourdomain.der -outform PEM -out yourdomain.crt
Используйте следующую команду для преобразования закрытого ключа с кодировкой DER в закрытый секретный ключ PEM:
openssl rsa -inform DER -in yourdomain_key.der -outform PEM -out yourdomain.key
showcert: проверяем сертификаты (без боли)
showcert - маленькая CLI утилитка, альтернатива openssl для просмотра сертификатов. Она умеет 1% того, что может openssl, но зато умеет [почти] все, что нужно в обычной админской жизни и даже немного больше чем openssl. И гораздо проще в использовании. Основные функции:
- Взять сертификат (или цепочку) из stdin, файла(файлов) или из TLS сервиса (HTTPS, POP3S, IMAPS), в том числе через STARTTLS (для SMTP, POP3, IMAP)
- Проверить валидность сертификата.
- Проверить "свежесть" сертификата, и если срок действия истекает через N дней - передать это в коде завершения.
- Распечатать сертификат (цепочку) в краткой форме (только основное), полной, в PEM формате (для сохранения в cert.pem или fullchain.pem).
И все это делается простым, интуитивно-понятным образом, для людей.
Когда я хочу проверить дату истечения, например, почтового сертификата яндекса, немного гуглю, потом сноровисто пишу что-то вроде:
$ echo | openssl s_client -connect mx.yandex.ru:25 -starttls smtp 2>&1 | openssl x509 -noout -dates
Когда я печатаю эту строчку, вспоминаю немало многокоренных слов из флотской службы, а ведь я даже не служил. А теперь, представьте, что мы хотим не просто увидеть дату, а еще и как-то что-то сделать, если до истечения останется меньше 20 дней. как будет выглядеть команда? Мне вообще сложно представить, как это можно автоматизировать через openssl и простые шелл скрипты.
Просмотр сертификатов через showcert
А теперь (после установки: pip3 install showcert ) сравните с:
$ showcert mx.yandex.ru:25
Names: mx.yandex.ru mx.yandex.net
notBefore: 2022-07-25 11:16:45 (15 days old)
notAfter: 2023-01-22 20:59:59 (165 days left)
Issuer: C=BE O=GlobalSign nv-sa CN=GlobalSign RSA OV SSL CA 2018
Ну разве не проще? showcert сам (по номеру порта) догадывается, как начать STARTTLS (но конечно же, это можно переопределить через опцию -t / --starttls, например, -t no или -t imap).
Предупредить о том, что сертификат скоро протухнет? Окей!
$ showcert mx.yandex.ru:25 -qw 200 || echo PROBLEM
mx.yandex.ru:25 expires in 165 days
PROBLEM
-q - тихий режим, не печатать лишнего, только предупреждения, -w 200 - завершаться с кодом ошибки, если до протухания меньше 200 дней.
Проверить https вебсайт? showcert github.com (Несложный синтаксис?)
"Скопировать" fullchain.pem с сервера (взять его и распечатать в PEM):
$ showcert google.com --chain -o pem > fullchain.pem
У меня после этого дампа (не с гугла, а со своего другого сервера) - даже md5 файлов сошелся!
Так же можно посмотреть или проверить один или несколько локальных файлов сертификатов (fullchain.pem или cert.pem).
Можно добавить --chain чтобы увидеть всю цепочку. И ключ -w тоже работает.
Формат вывода сертификатов
По умолчанию ( -o brief ) выводится краткая информация (все, что обычно важно, минимум лишнего). -o full дает полный дамп (как openssl), -o pem даст сертификат в PEM формате (удобно сделать редирект в файл и получить его на диске).
Еще есть удобный формат -o names - просто распечатывает все имена из сертификата, и его вариация -o dnames , о ней ниже.
Сахар для LetsEncrypt
Мы много используем LetsEncrypt, поэтому showcert удобен для этого. На сервере могут быть десятки (а то и сотни) сайтов, у каждого сертификат. Да, certbot renew в теории должен обновлять их, но сайты живые, постоянно разрабатываются, причем разными людьми и с ними иногда происходят разные чудеса. То поменяется DocumentRoot, то появятся правила rewrite/redirect, которые блокируют проверку, то доменное имя куда-то уедет. В общем, обновления иногда фейлятся и сертификаты протухают. А когда сайтов много, что-то проблемное случается регулярно.
Мы используем okerr (статья про okerr на хабре) для мониторинга. Наш собственный open source гибридный мониторинг. Раньше мы использовали скрипт, создавал индикатор типа sslcert для каждого сайта (это тоже не очень удобно, так как сайты ведь иногда и умирают или переезжают на другой сервер). Но с showcert стало еще проще:
Простой приятный способ проверить, что все LetsEncrypt сертификаты еще свежи:
# showcert :le -qw
/etc/letsencrypt/live/example.com/fullchain.pem expires in 19 days
/etc/letsencrypt/live/example.net/fullchain.pem expires in 19 days
# echo $?
2
Команда выше - синоним showcert /etc/letsencrypt/live/*/fullchain.pem -qw , а код :le запомнить проще, чем путь к сертификатам. Ну и код завершения удобен, чтобы использовать его в мониторинге, собственных скриптах. У нас showcert вызывается из okerrupdate/okerrmod, в окерр внешние скрипты проверки цепляются одной строчкой, но если у вас другой мониторинг - тоже сможете легко подцепить showcert.
Если не используете никакой мониторинг, то showcert :le -qw в cron раз в сутки - оповестит заранее о сертификатах, которые своевременно не смогли обновиться, и у вас будет время починить.
Еще одна опция: -o dnames печатает имена через -d, это удобно чтобы скармливать их certbot:
$ showcert -o dnames habr.ru
-d habr.ru -d www.habr.ru
Для двух имен, как у хабра - это не имеет особого смысла, но если у сертификата имен много, и вам нужно пересоздать его - вручную печатать их можно и ошибиться. Проще через showcert получить часть команды и просто использовать ее (или даже использовать сам showcert в команде:
certbot certonly --webroot /var/www/habr `showcert -o dnames habr.ru`
Попробуйте, например, showcert -o dnames google.com .
Заключение
Утилита простая, синтаксис очевидный и простой, не требует запоминания и для большинства частых админских операций - работает замечательно! Пригодна для отслеживания протухающих сертификатов (через openssl это сложнее). Без нее можно обойтись, но с ней проще.
Очень советую попробовать 🙂