Основной домен с активным HTTPS и поддомены с ошибками без защищенного соединения.
SSL не всегда автоматически распространяется на поддомены

Ситуация знакома многим администраторам сайтов. Основной домен открывается нормально: замок в браузере есть, HTTPS работает, никаких предупреждений. Но стоит перейти на поддомен – например blog.example.com или mail.example.com – и браузер вдруг показывает сообщение о небезопасном соединении. Для пользователя это выглядит как ошибка сайта. На самом деле в большинстве случаев сервер работает нормально. Проблема обычно прячется в том, как выписан или подключён сам сертификат.

Как браузер проверяет SSL

SSL-сертификат нужен не только для шифрования трафика. При открытии страницы браузер проверяет, соответствует ли адрес сайта тем доменным именам, которые прописаны внутри сертификата. Там всегда есть список конкретных адресов. И если браузер видит несоответствие, он реагирует довольно жёстко, даже если сервер настроен правильно, а шифрование работает.

Для системы безопасности важно другое: домен, к которому подключается пользователь, должен буквально совпадать с тем, что указано в сертификате. Из-за этого и возникают на первый взгляд странные ситуации. example.com открывается без проблем, а тот же сайт на поддомене внезапно «ломается».

Самая частая причина – сертификат для одного домена

В большинстве случаев на сайте установлен обычный сертификат для одного домена. Он может быть выдан, например, только для example.com или для www.example.com. Пока пользователь заходит именно на этот адрес, всё выглядит правильно. Сервер отдаёт сертификат, браузер сверяет имя – и показывает защищённое соединение. Но когда кто-то открывает blog.example.com, браузер видит другое доменное имя. В сертификате его нет. Для браузера это выглядит как подмена сайта, поэтому он и показывает предупреждение. Здесь есть важный момент: это не ошибка SSL и не сбой сервера. Это обычная проверка безопасности, которая работает именно так, как должна.

Поддомен для браузера – это отдельный сайт

С точки зрения владельца сайта поддомен часто выглядит просто как часть одного проекта. Блог, API, почтовый сервер, панель управления – всё это может жить в одном домене. Но SSL работает немного иначе. Для проверки безопасности каждый поддомен – это отдельный адрес. shop.example.com, api.example.com или рассматриваются браузером так же, как любые другие сайты в интернете. Если они не прописаны в сертификате, браузер просто не может подтвердить их подлинность. И тогда появляется знакомое сообщение о небезопасном соединении.

Wildcard-сертификаты и типичная путаница

Когда сайт использует много поддоменов, обычно устанавливают wildcard-сертификат. В нём используется запись вида *.example.com. Это означает, что сертификат будет работать для всех поддоменов одного уровня. blog.example.com, shop.example.com, api.example.com – всё это покрывается одним сертификатом.

Но здесь есть деталь, о которой часто забывают. Такой сертификат иногда не включает сам основной домен. То есть поддомены работают нормально, а example.com может выдавать предупреждение. На практике такое случается чаще, чем кажется. Особенно когда сертификат выпускается автоматически и никто не смотрит, какие именно домены в нём записаны.

Когда проблема не в сертификате, а в конфигурации

Бывает и более сложный сценарий. Сертификат правильный, поддомены в нём есть, но браузер всё равно показывает ошибку. Здесь уже стоит смотреть на конфигурацию сервера. В реальных проектах поддомены часто работают через другие конфигурационные блоки или даже через другие сервисы. Например API, почтовый сервер или отдельная панель управления. Если для этого блока не подключён нужный сертификат, сервер просто отдаёт другой. И браузер снова видит несоответствие доменного имени. Со стороны пользователя это выглядит как сломанный SSL, хотя на самом деле проблема чисто конфигурационная.

Неполная цепочка сертификатов

Есть ещё одна история, которая иногда появляется уже после запуска сайта – это неправильная цепочка сертификации. SSL состоит не только из основного сертификата. Есть ещё промежуточные сертификаты центра сертификации, которые подтверждают доверие к нему. Если они подключены не полностью, разные браузеры могут вести себя по-разному. На одном компьютере сайт откроется нормально. На другом появится предупреждение. Иногда это проявляется именно на поддоменах, потому что они обслуживаются другим серверным конфигом.

Почему это важно для сайта

Предупреждения браузера о небезопасном соединении работают очень просто. Пользователь видит красное сообщение – и просто закрывает вкладку. Особенно болезненно это выглядит, когда поддомены используются для входа в личный кабинет, API или почтовых сервисов. Часть интеграций может вообще перестать работать, а некоторые браузеры просто блокируют такие соединения. В итоге проблема с SSL, которая кажется мелочью, довольно быстро начинает влиять и на доверие пользователей, и на работу самого сайта.

Почему такие проблемы появляются

Чаще всего причина банальная. Сначала запускается один сайт на одном домене. Потом появляется блог, API, отдельный сервис или панель управления. Поддомены добавляются постепенно, а сертификат остаётся старым.

В реальных проектах это обычная история. Просто о таких вещах лучше думать заранее. Потому что потом приходится перевыпускать сертификаты, менять конфигурацию сервера и проверять всё заново. Иногда уже на работающем сайте.