Сайт открывается по HTTPS без www, но при переходе на www браузер выдаёт ошибку сертификата. Или наоборот: www работает, а без www — нет. Причина почти всегда в том, что сертификат выдан только на одно имя, а второе не покрыто. Разберём, почему так происходит и как это исправить.
Почему SSL может работать на одном имени и не работать на другом
SSL-сертификат выдаётся на конкретные имена. Если сертификат выдан на site.ru, он не обязательно покрывает www.site.ru. Это разные имена с точки зрения сертификата.
Типы сертификатов:
— сертификат на одно имя (site.ru);
— сертификат с SAN (Subject Alternative Name), который покрывает несколько имён;
— wildcard-сертификат (*.site.ru), который покрывает все поддомены, но не покрывает сам site.ru.
Если сертификат выдан только на site.ru, а пользователь открывает www.site.ru, браузер увидит, что имя не совпадает, и выдаст ошибку.
Причина 1: сертификат без SAN для www
Самая частая причина. Сертификат выдан на site.ru, но в SAN не указан www.site.ru. Браузер считает, что сертификат не соответствует имени.
Что проверить:
— какие имена покрывает сертификат;
— есть ли в SAN www.site.ru;
— совпадает ли имя в сертификате с именем в адресной строке.
Для проверки используйте проверка SSL — инструмент покажет, на какие имена выдан сертификат и какие SAN указаны.
Причина 2: wildcard не покрывает корневой домен
Wildcard-сертификат (*.site.ru) покрывает все поддомены, но не покрывает сам site.ru. Если вы используете wildcard и открываете site.ru без www, браузер может выдать ошибку.
Что проверить:
— покрывает ли сертификат site.ru;
— покрывает ли он www.site.ru;
— есть ли отдельный сертификат для корневого домена.
Решение — использовать сертификат с SAN, который покрывает и site.ru, и www.site.ru. Или использовать wildcard вместе с отдельным сертификатом для корневого домена.
Причина 3: неправильная настройка сервера
Иногда сертификат корректен, но сервер отдаёт его только для одного имени. Например, nginx настроен так, что для www используется другой server-блок без сертификата.
Что проверить:
— настройки nginx или Apache;
— есть ли отдельный server-блок для www;
— какой сертификат отдаётся для каждого имени;
— есть ли редирект с www на без www или наоборот.
Если редирект настроен правильно, пользователь может не увидеть ошибку: он будет перенаправлен на имя, покрытое сертификатом. Но если редирект не настроен, ошибка появится.
Причина 4: цепочка сертификатов неполная
Иногда сертификат покрывает оба имени, но цепочка сертификатов неполная. Браузер может показать ошибку, даже если имя совпадает.
Что проверить:
— полная ли цепочка сертификатов;
— есть ли промежуточные сертификаты;
— отдаёт ли сервер всю цепочку;
— нет ли ошибок в цепочке.
Для проверки используйте инструмент проверки SSL. Он покажет, полная ли цепочка и какие имена покрыты.
Причина 5: кэш браузера или CDN
Иногда сертификат уже обновлён, но браузер или CDN кэширует старую версию. Пользователь видит ошибку, хотя сертификат корректен.
Что проверить:
— очистить кэш браузера;
— проверить в режиме инкогнито;
— очистить кэш CDN;
— проверить с другого устройства.
Если ошибка только у вас, скорее всего, проблема в кэше. Если у всех — проблема в сертификате или настройках сервера.
Как проверить сертификат
Пошаговая проверка:
— откройте сайт по HTTPS с www и без www;
— проверьте, нет ли ошибки сертификата;
— проверьте, какие имена покрывает сертификат;
— проверьте, полная ли цепочка;
— проверьте, отдаёт ли сервер корректный сертификат для каждого имени;
— проверьте, есть ли редирект между www и без www.
Как исправить
План действий:
— выпустить сертификат с SAN, покрывающий site.ru и www.site.ru;
— или использовать wildcard вместе с сертификатом для корневого домена;
— настроить сервер так, чтобы он отдавал корректный сертификат для каждого имени;
— проверить цепочку сертификатов;
— настроить редирект с www на без www или наоборот;
— очистить кэш браузера и CDN;
— проверить результат.
Как проверить результат
Чек-лист:
— сайт открывается по HTTPS с www и без www;
— нет ошибки сертификата;
— сертификат покрывает оба имени;
— цепочка полная;
— редирект работает корректно;
— в браузере отображается замок.
Если нужно проверить сразу несколько параметров — SSL, HSTS, редиректы — логично перейти к SEO-аудиту.
Частые ошибки
— сертификат без SAN для www;
— wildcard без сертификата для корневого домена;
— неправильная настройка сервера;
— неполная цепочка сертификатов;
— отсутствие редиректа между www и без www;
— кэш браузера или CDN.
FAQ
Почему SSL работает без www, но не работает с www?
Скорее всего, сертификат выдан только на site.ru и не покрывает www.site.ru. Проверьте SAN сертификата.
Покрывает ли wildcard-сертификат корневой домен?
Нет. Wildcard (*.site.ru) покрывает поддомены, но не сам site.ru. Для корневого домена нужен отдельный сертификат или SAN.
Как проверить, какие имена покрывает сертификат?
Используйте инструмент проверки SSL. Он покажет, на какие имена выдан сертификат и какие SAN указаны.
Что делать, если сертификат покрывает оба имени, но ошибка остаётся?
Проверьте цепочку сертификатов, настройки сервера и кэш браузера или CDN. Возможно, сервер отдаёт не тот сертификат для www.
Можно ли использовать один сертификат для www и без www?
Да, если он содержит оба имени в SAN. Это самый простой способ избежать ошибок.
Влияет ли ошибка сертификата на SEO?
Да. Если браузер показывает ошибку, пользователи уходят, а поисковые роботы могут пометить страницу как недоступную. Это снижает трафик и позиции.
Нужен ли отдельный сертификат для каждого поддомена?
Не обязательно. Можно использовать wildcard или сертификат с SAN, который покрывает несколько имён.
Что делать, если сертификат истёк?
Обновить сертификат. Проверьте срок действия заранее, чтобы избежать ошибок.
Может ли CDN вызывать ошибку сертификата?
Да. Если CDN отдаёт старый сертификат или неправильно настроен, пользователи могут видеть ошибку. Проверьте настройки SSL в CDN.
Как проверить, что сертификат работает корректно?
Откройте сайт по HTTPS с www и без www, проверьте, нет ли ошибки, и убедитесь, что сертификат покрывает оба имени. Инструмент проверки SSL покажет детали.