Мы можем быстро решить проблемы с сертификатами TLS или SSL, проверив срок действия сертификата из командной строки. Давайте посмотрим, как определить срок действия TLS или SSL сертификата из файла сертификата в кодировке PEM и живого производственного сайта/доменного имени также при использовании Linux, *BSD, macOS или Unix-подобной системы.
Как проверить срок действия сертификата TLS/SSL из командной строки
Чтобы проверить срок действия SSL-сертификата, мы будем использовать клиент командной строки OpenSSL. Клиент OpenSSL предоставляет массу данных, включая даты действия, сроки действия, кто выдал сертификат TLS/SSL и многое другое.
Проверка срока действия сертификата SSL или TLS
Откройте приложение Terminal, а затем выполните следующую команду:
1 | openssl s_client -servername {SERVER_NAME} -connect {SERVER_NAME}:{PORT} | openssl x509 -noout -dates |
1 | echo | openssl s_client -servername {SERVER_NAME} -connect {SERVER_NAME}:{PORT} | openssl x509 -noout -dates |
Для примера, давайте узнаем срок годности для g-soft.info, введите:
1 2 3 4 | DOMAIN="g-soft.info" PORT="443" openssl s_client -servername $DOMAIN -connect $DOMAIN:$PORT \ | openssl x509 -noout -dates |
Пример выходных данных с указанием дат и другой информации:
Добавьте команду echo, чтобы избежать нажатия клавиш CTRL+C. Например:
1 2 3 4 5 | DOMAIN="g-soft.info" PORT="443" ## обратите внимание на добавление echo ## echo | openssl s_client -servername $DOMAIN -connect $DOMAIN:$PORT \ | openssl x509 -noout -dates |
Понимание параметров команды openssl
openssl - это очень полезный инструмент диагностики TLS и SSL серверов. Опции командной строки openssl следующие:
- s_client : Команда s_client реализует общий клиент SSL/TLS, который подключается к удаленному хосту с помощью SSL/TLS.
- -servername $DOM : Установить расширение TLS SNI (Server Name Indication) в сообщении ClientHello на заданное значение.
- -connect $DOM:$PORT : Указывает хост ($DOMAIN) и необязательный порт ($PORT) для подключения.
- x509 : Запустить утилиту отображения и подписания сертификатов.
- -noout : Предотвращает вывод кодированной версии сертификата.
- -dates : Выводит даты начала и окончания срока действия сертификата TLS или SSL.
Поиск даты истечения срока действия сертификата SSL из файла сертификата в кодировке PEM
Синтаксис следующий: запросите файл сертификата о том, когда истекает срок действия сертификата TLS/SSL
1 | openssl x509 -enddate -noout -in [/path/to/my/my.pem] |
1 | openssl x509 -enddate -noout -in /etc/ssl/certs/apache-selfsigned.crt |
1 | openssl x509 -enddate -noout -in /etc/letsencrypt/live/test.g-soft.info/fullchain.pem |
Мы также можем проверить, истекает ли срок действия сертификата в заданные временные рамки. Например, узнайте, истекает ли срок действия сертификата TLS/SSL в течение следующих 7 дней (604800 секунд):
1 | openssl x509 -enddate -noout -in my.pem -checkend 604800 |
Проверьте, истекает ли срок действия сертификата TLS/SSL в ближайшие 4 месяца
1 | openssl x509 -enddate -noout -in my.pem -checkend 10520000 |
Заключение
В этом кратком руководстве вы узнали, как найти дату истечения срока действия сертификата TLS/SSL из файла сертификата в кодировке PEM, включая DNS-имя. Просроченные сертификаты TLS/SSL могут стать причиной простоя и путаницы для конечных пользователей. Поэтому очень важно отслеживать срок действия наших сертификатов TLS/SSL. Посмотрите следующие страницы руководства (используйте команду man или help)
1 | man x509 |
1 | man s_client |