Домены LinuxNginx / Apache / панель хостингаDNS / TLS

Почему сертификат *.example.com не действует для example.com

  • Обновлено
  • Чтение ≈ 4 минуты
  • Нужны права администратора

Краткий ответ

Имя *.example.com покрывает одноступенчатые поддомены наподобие www.example.com, но само example.com в него не входит. Для корневого имени нужен отдельный SAN в том же сертификате или отдельный сертификат.

В этой статье
  1. Что происходит и когда применима инструкция
  2. Причины: как различить похожие случаи
  3. Диагностика и пошаговое устранение
  4. Как проверить, что неисправность устранена
  5. Если не получилось и как отменить правки

#Что происходит и когда применима инструкция

Имя *.example.com покрывает одноступенчатые поддомены наподобие www.example.com, но само example.com в него не входит. Для корневого имени нужен отдельный SAN в том же сертификате или отдельный сертификат.

#Причины: как различить похожие случаи

Возможная причинаКак узнатьЧто делать
Отсутствует корневое имя в SANWildcard-сертификат выдан только для *.example.com.Проверка Subject Alternative Name показывает wildcard, но не DNS:example.com.Добавить корневое имя в сертификат или назначить отдельный сертификат.
Nginx использует старый сертификатНовый выпуск уже включает apex, но веб-сервер отдаёт другой файл.certbot certificates и сертификат по TLS отличаются по списку имён.Проверить ssl_certificate для нужного server и reload после теста.
Другая точка завершает HTTPSБалансировщик или CDN отдаёт сертификат раньше Nginx.Сертификат на прямом IP и публичный сертификат отличаются.Обновить сертификат на внешнем узле, не только на сервере сайта.

#Диагностика и пошаговое устранение

  1. 1. Уточните, какое имя выдаёт предупреждениеОткройте сайт отдельно по https://example.com и https://www.example.com (заменив домен). Если поддомен работает, а корень не проходит проверку имени, очень вероятно отсутствие apex в сертификате. Не выбирайте кнопку игнорирования ошибки TLS: это мешает понять реальную причину.
  1. 2. Просмотрите имена сертификата у посетителяВ Linux-терминале выполните команду для публичного сервера; SNI задаётся параметром -servername, -connect указывает адрес и порт. По выходу найдите X509v3 Subject Alternative Name, список DNS и даты. Если оболочка не позволяет открыть соединение, выполните проверку с другого компьютера либо через браузерную информацию о сертификате.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Замените example.com своим доменом; без прав администратора; команда лишь читает предъявленный сертификат.
    echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -ext subjectAltName -dates
  1. 3. Проверьте заявку и автоматическое продлениеЕсли используется Certbot, по SSH запросите список сохранённых сертификатов. Сравните Domains и Certificate Path с предъявляемым сервером. Если в Domains только *.example.com, проблема не в браузере; необходимо запросить оба имени. Если используется панель, откройте карточку сертификата и проверьте перечень доменов до смены конфигурации.
    Linux · Терминал (Bash)КомандаНужен sudo
    Только чтение списка сертификатов Certbot; не требуется, если сертификаты выпускает панель.
    sudo certbot certificates
  1. 4. Выберите способ покрытия обоих имёнДля единого сертификата нужен набор -d example.com -d "*.example.com" при выдаче методом DNS-01: HTTP-01 не подтверждает wildcard. При ручном DNS-01 учтите, что для этих имён могут потребоваться два разных TXT-значения в _acme-challenge.example.com одновременно. Не копируйте предложенные здесь примерные домены; уточните действующий DNS-плагин и дождитесь его штатного подтверждения.
  1. 5. Сохраните действующие файлы и запросите обновление штатноПеред перевыпуском выпишите имя сертификата (Certificate Name), путь fullchain.pem, путь закрытого ключа и сохраните рабочую конфигурацию сайта, не передавая ключ третьим лицам. В Certbot используйте его документированный механизм --cert-name и полный набор -d для обновления существующего сертификата; способ аутентификации DNS должен уже быть настроен. Не выполняйте массовые повторные выдачи и не удаляйте старый сертификат.
  1. 6. Проверьте, что Nginx использует сертификат с SAN apexПо SSH прочитайте блок server для example.com и директивы ssl_certificate, ssl_certificate_key. В Nginx для Let’s Encrypt обычно указывают fullchain.pem, а не cert.pem; файл ключа не следует выводить на экран или копировать в публичную директорию. При изменении конфигурации сначала сохраните копию и выполните проверку синтаксиса.
    Linux · Терминал (Bash)КомандаНужен sudo
    Только тест конфигурации Nginx; после успешного теста отдельно примените reload по регламенту.
    sudo nginx -t
  1. 7. Примените сертификат на правильном узлеЕсли TLS завершается на сервере, после успешного теста примените sudo systemctl reload nginx; действующие подключения обычно не обрываются. Если впереди находится CDN, панель управления или балансировщик, обновите сертификат именно там и затем перепроверьте публичный доступ. Не меняйте одновременно настройки нескольких узлов без фиксации исходного состояния.
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Применить только после nginx -t, если конфигурация корректна.
    sudo systemctl reload nginx

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. 8. Проверьте корень, поддомен и продлениеПовторите TLS-проверку для example.com и www.example.com. В обоих случаях должен предъявляться сертификат, SAN которого покрывает проверяемое имя, срок действия не истёк. Уточните, что плановая автоматическая выдача сохраняет оба имени. Если имя всё ещё отсутствует — сервер отдаёт не тот файл или внешний узел не обновлён.

#Как проверить, что неисправность устранена

Проверяйте именно открытие корневого имени и наличие DNS:example.com в SAN публичного сертификата, а не только наличие файла в /etc/letsencrypt. Отдельно проверьте обычный поддомен.

#Если не получилось и как отменить правки

При ошибочном подключении сертификата верните прежнюю директиву ssl_certificate из копии конфигурации, выполните nginx -t и reload. Старый сертификат не отменяет требования покрыть apex; если необходимо срочно восстановить корень, назначьте ранее действующий корректный сертификат.

Если причина не установлена, соберите точный текст ошибки, время, имя домена, результаты проверок без паролей и приватных ключей. Передайте их ответственному администратору или поддержке регистратора, DNS-провайдера либо хостинга. Не повторяйте опасные изменения без резервной копии.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.