SNI: несколько сайтов с HTTPS на одном IP — неверный сертификат открывается по умолчанию

  • Обновлено
  • Чтение ≈ 2 минуты

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

Старые клиенты не поддерживают SNI. Проверьте server_name, default_server и порядок виртуальных хостов.

В этой статье
  1. Что означает сообщение
  2. Причины и признаки
  3. Пошаговое решение
  4. На что обратить внимание

#Что означает сообщение

Сообщение
Неверный сертификат у домена

Старые клиенты не поддерживают SNI. Проверьте server_name, default_server и порядок виртуальных хостов.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Не тот server_nameВ nginx указан другой server_name либо блок не участвует в обработке нужного IP и порта.Проверьте активный виртуальный хост nginx и SNI, исправьте имя в конкретном блоке и запустите nginx -t.
default_serverБез SNI клиент получает настройки сервера по умолчанию; они могут не соответствовать ожидаемому домену.Проверьте явно назначенный сервер по умолчанию и его нейтральный сертификат без изменения других сайтов.
Старый клиентОтдельно проверьте фактор «Старый клиент» в момент, когда возникает описанная неисправность; сравните с работой исправного устройства или настройки.Если проверка подтверждает «Старый клиент», исправьте только относящийся к нему элемент, сохранив прежнее значение и возможность возврата.
Нет сертификатаСверьте точное имя узла, срок сертификата или действующую подпись; проверьте их на стороне реального сервера, а не только в локальном файле.Исправляйте цепочку, имя или ключ у владельца сервиса; не заменяйте устранение причины отключением проверки защищённого соединения.

#Пошаговое решение

  1. Проверьте исходные условияВ браузере откройте именно домен, на котором выводится чужой сертификат, и запишите имя, указанное в сертификате. Сравните результат с openssl s_client -connect ИМЯ:443 -servername ИМЯ -showcerts: при SNI-соединении сервер должен выбирать сертификат для указанного домена.
  2. Проверьте server_nameАдминистратор Nginx или Apache проверяет все виртуальные хосты, слушающие нужный IP:443, и точное имя в server_name/ServerName и ServerAlias. Отдельно проверьте сайт по IPv4 и IPv6: неправильный сертификат может приходить с одного из адресов или промежуточного балансировщика.
  3. Проверьте другую возможную причинуНайдите и исправьте конфигурацию соответствующего HTTPS-хоста с сертификатом, покрывающим нужные имена. Для запросов без SNI сервер может показывать сертификат хоста по умолчанию — это ожидаемое поведение, поэтому не пытайтесь применить одно имя ко всем чужим доменам.
  4. Проверьте итогСоздайте копию изменяемого конфига, проверьте синтаксис (nginx -t либо apachectl configtest) и только затем примените изменения штатным способом. Повторите проверку с -servername, в браузере и, при наличии CDN, напрямую к исходному серверу, убедившись, что ответы не разнятся.

#На что обратить внимание

Не меняйте default_server для исправления всего сразу: это изменит поведение неизвестных имён. Старые клиенты без SNI могут получать сертификат сайта по умолчанию; это ограничение нужно учитывать отдельно.

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

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

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