Перейти к содержимому

Сертификат SSL не соответствует домену: почему так бывает

Ошибка «сертификат не соответствует имени сайта» означает буквально то, что написано: браузер подключился к серверу, получил сертификат, но не нашёл в нём домен, который пользователь открыл. Простой пример Открываем: api.example.com а…

Ошибка «сертификат не соответствует имени сайта» означает буквально то, что написано: браузер подключился к серверу, получил сертификат, но не нашёл в нём домен, который пользователь открыл.

Простой пример

Открываем:

api.example.com

а сертификат действителен для:

www.example.com

Для браузера это разные имена.

Где записаны разрешённые имена

Современные сертификаты содержат Subject Alternative Name — SAN.

Например:

DNS:example.com
DNS:www.example.com
DNS:api.example.com

Если нужного имени нет

Сертификат не подходит к этому hostname, даже если компания и сервер те же самые.

Частая проблема после добавления поддомена

Администратор создаёт:

new.example.com

DNS уже работает, nginx настроен, но сертификат для нового имени забыли получить.

www и без www

Нужно явно учитывать оба варианта, если оба доступны пользователям.

Wildcard

Сертификат:

*.example.com

может покрывать многие поддомены первого уровня, например:

www.example.com
api.example.com

но не обязательно:

a.b.example.com

Wildcard и корневой домен

*.example.com и example.com — не одно имя. Обычно, если нужен и apex, его включают отдельно.

SNI и неправильный сертификат

На одном IP может жить много HTTPS-сайтов.

Если SNI отсутствует или конфигурация virtual host неправильная, сервер способен показать сертификат соседнего сайта.

Старый сервер после миграции

DNS-кеш может отправлять часть пользователей на старый IP, где остался сертификат другой конфигурации.

CDN

При подключении CDN сертификат должен быть корректно настроен как на пользовательской стороне CDN, так и при необходимости между CDN и origin.

Как посмотреть сертификат

openssl s_client \
-connect example.com:443 \
-servername example.com

Посмотреть SAN

openssl s_client \
-connect example.com:443 \
-servername example.com 2>/dev/null \
| openssl x509 -noout -ext subjectAltName

Почему важно указывать -servername

Это отправляет SNI. Без него на сервере с множеством сайтов вы можете получить default-сертификат и сделать неправильный вывод.

Проверка конкретного IP

curl --resolve example.com:443:203.0.113.25 \
-I https://example.com/

Как исправить

Нужно либо выпустить сертификат с правильным набором имён, либо исправить DNS/virtual host, если пользователь вообще попал не на тот сервер.

Нельзя решить проблему redirect после TLS

Если сертификат неверен уже при подключении к wrong.example.com, браузер получает предупреждение до того, как сможет безопасно обработать обычный HTTP redirect.

Как NexIP помогает

Проверка должна показывать реальные SAN сертификата и сравнивать их с проверяемым hostname.

FAQ

Сертификат example.com подходит для www.example.com?

Только если www явно включён в сертификат.

Можно один сертификат на много доменов?

Да, сертификат может содержать несколько SAN.

Почему открывается сертификат чужого сайта?

Частая причина — неправильный SNI/virtual host либо подключение к неправильному IP.

Диагностика NexIP

Продолжите реальной проверкой

Откройте полный раздел диагностики и проверьте сайт, домен или сетевые параметры.

Открыть диагностику

Читайте дальше

Материалы по теме

SSL-сертификаты

Почему браузер пишет «Подключение не защищено»

Сообщение «Подключение не защищено» не обязательно означает, что сайт заражён или вас прямо сейчас взламывают. Оно означает, что браузер не смог нормально подтвердить защищённость HTTPS-соединения. Причин несколько — от банально…

Читать
Вернуться в базу знаний