#Что означает сообщение
Проверка сертификата
Команда openssl x509 -noout -dates показывает срок, openssl s_client — цепочку. Настройте мониторинг заранее.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Не отслеживается срок | Не настроено предупреждение до даты Not After: действующий сертификат может истечь незаметно. | Добавьте проверку срока на реальном HTTPS-узле с запасом времени для продления и смены сертификата. |
| Неполная цепочка | Клиент получает конечный сертификат без необходимого промежуточного, поэтому не находит доверенную цепочку. | Настройте выдачу корректного fullchain от удостоверяющего центра и проверьте цепочку с внешнего клиента. |
| Не тот сертификат | Сервер может отдавать старый сертификат или сертификат чужого виртуального хоста; сравните SAN с именем запроса. | Сверьте актуальный путь сертификата и конфигурацию виртуального хоста, затем выполните проверочный HTTPS-запрос. |
| SNI | TLS-клиент без server_name может получить сертификат домена по умолчанию, даже если файл другого домена корректен. | Указывайте целевое имя через -servername при проверке openssl; настройте отдельные хосты с правильными сертификатами. |
#Пошаговое решение
- Проверьте исходные условияНа компьютере с OpenSSL откройте терминал и выполните
openssl s_client -connect example.com:443 -servername example.com -showcerts, заменив домен настоящим. Параметр-servernameважен: на одном IP может работать несколько сайтов с разными TLS-сертификатами. Отмечайте сообщения о доверии цепочке и имя выданного сертификата. - Проверьте датыДля быстрого просмотра срока действия выполните
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates. Команда выводитnotBeforeиnotAfter; если соединение не установилось, перенаправление ошибок может скрыть причину — повторите подробную команду без2>/dev/null. - Проверьте другую возможную причинуПроверьте, что имя сайта содержится в SAN сертификата:
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -ext subjectAltName. Посмотрите в браузере замок → сведения о соединении → сертификат; устаревший CN сам по себе не заменяет SAN. - Проверьте итогПри ошибке цепочки убедитесь, что сервер отдаёт промежуточные сертификаты, а корневой центр доверен клиенту. Исправляйте комплект сертификатов на сервере и проверяйте через несколько клиентов; не отключайте проверку TLS в приложении. После обновления повторите команды и проверьте срок действия уже отдаваемого, а не только файла на диске.
#На что обратить внимание
Не считайте успешное TLS-соединение доказательством корректной цепочки: отдельные клиенты могут пропускать ошибки проверки. Учитывайте промежуточные сертификаты и проверяйте именно внешний адрес сайта.
Linux · Терминал (Bash)Команда
Срок действия сертификата.
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates