NET::ERR_CERT_COMMON_NAME_INVALID: что значит и как исправить
NET::ERR_CERT_COMMON_NAME_INVALID — Chrome не нашёл адрес сайта среди имён, для которых выпущен его сертификат. Например, сертификат получен только для example.com, а сайт открыли как www.example.com.
Содержание 10
Что сделать прямо сейчас
Если вы просто открываете сайт:
- Не вводите на этом сайте пароли и данные банковских карт, пока предупреждение не исчезнет: нельзя быть уверенным, что вы попали на настоящий сайт.
- Проверьте адрес в адресной строке: нет ли в нём опечатки. Попробуйте открыть сайт без www в начале адреса или, наоборот, с www — например, example.com вместо www.example.com.
- Если вы подключены к общественному Wi-Fi — в кафе, гостинице, метро, — возможно, сначала нужно войти на странице этой сети. Пока вход не выполнен, сеть может показывать свою страницу вместо нужной, и имя в сертификате не совпадёт с адресом.
- Если не помогло, сообщите владельцу сайта код ошибки — NET::ERR_CERT_COMMON_NAME_INVALID. Он написан под текстом предупреждения.
Если сайт ваш, переходите к разделам «Как проверить» и «Как исправить» ниже: там все команды по шагам.
Что значит ошибка
SSL-сертификат — это электронный документ, которым сайт подтверждает браузеру, что он настоящий. В сертификате перечислены имена, для которых он действует, — в поле Subject Alternative Name (сокращённо SAN). Chrome сравнивает с этим списком адрес из адресной строки. Если адреса в списке нет, он показывает NET::ERR_CERT_COMMON_NAME_INVALID — в исходном коде Chrome это ошибка -200.
Поле Common Name (CN), по которому названа ошибка, при проверке не используется: стандарт RFC 9525 требует сверять адрес сайта со списком имён SAN.
Звёздочка в начале имени заменяет ровно одну часть адреса. Сертификат на *.example.com подойдёт для shop.example.com, но не для example.com и не для a.shop.example.com.
Как выглядит в Chrome
Страница такая же, как при других ошибках сертификата: вкладка «Ошибка нарушения конфиденциальности», заголовок «Подключение не защищено», предупреждение, что злоумышленники, возможно, пытаются похитить данные, и код NET::ERR_CERT_COMMON_NAME_INVALID. Внизу — кнопки «Вернуться к безопасной странице» и «Дополнительные настройки».
«Дополнительные настройки» раскрывают пояснение: Chrome пишет, что не смог подтвердить, что это сервер нужного сайта, потому что сертификат относится к другому имени, и называет одно из имён из сертификата. По нему видно, для какого адреса сертификат выпущен на самом деле. Если в сертификате нет списка имён, Chrome сообщает, что в нём не указаны альтернативные варианты имён.
Причины
- Сертификат выпущен не на все имена сайта. Например, Certbot запускали только с -d example.com, а посетители открывают www.example.com. Для браузера это два разных имени.
- На сервере несколько сайтов, а у одного нет своего сертификата. Если имени shop.example.com нет ни в одном блоке server с портом 443, nginx отдаёт сертификат сайта по умолчанию, а он выпущен для другого имени.
- Сайт открыли по IP-адресу сервера, а сертификат выпущен для доменного имени.
- Звёздочка не подходит к адресу. Сертификат на *.example.com не действует для example.com и для a.shop.example.com.
- Короткое имя в рабочей сети. Сайт открывают по имени intranet, а сертификат выпущен на полное имя intranet.example.com.
- Сеть подменяет страницы. Так бывает в общественном Wi-Fi до входа на странице сети или при попытке перехватить данные: браузер получает сертификат другого сайта.
Если сертификат к тому же самоподписанный, Chrome покажет другую ошибку — NET::ERR_CERT_AUTHORITY_INVALID: из нескольких проблем он сообщает о более серьёзной. Так было и на нашем тестовом сервере в Chrome 155.
Как проверить
Команды из этого раздела вводятся в терминале сервера. Если вы ещё не подключались к нему, начните с инструкции Как подключиться к VPS по SSH. Скопируйте команду целиком, замените example.com на адрес своего сайта и нажмите Enter.
Шаг 1. Посмотрите, для каких имён выпущен сертификат
Подставьте в команду тот адрес, на котором появляется ошибка, — в обоих местах:
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -text | grep -A1 "Subject Alternative Name"Команда соединяется с сайтом так же, как браузер, и показывает список имён из сертификата. Ответ — две строки, во второй будут имена вида DNS:example.com, DNS:www.example.com. Адрес, на котором появляется ошибка, должен быть в этом списке. Если второй строки нет, в сертификате нет списка имён и его нужно выпустить заново.
Шаг 2. Посмотрите, какие сертификаты выпустил Certbot
sudo certbot certificatesCertbot покажет все свои сертификаты. У каждого есть строка Certificate Name — название сертификата, строка Domains — имена, для которых он выпущен, и строка Certificate Path — где лежит файл. Если нужного имени нет ни в одной строке Domains, сертификат для него не выпускали.
Шаг 3. Проверьте настройки nginx
sudo nginx -T | grep -E 'server_name|ssl_certificate'Команда выведет из всех настроек nginx строки с именами сайтов (server_name) и путями к сертификатам (ssl_certificate). Строки идут в том порядке, в каком записаны в настройках, поэтому имя сайта и его сертификат окажутся рядом. Для каждого имени, которое открывают по https://, должен быть указан сертификат, в котором это имя есть.
Как исправить
Выпустите сертификат на все имена сайта
Сначала убедитесь, что каждое имя ведёт на ваш сервер. В настройках домена для www должна быть A-запись с IP-адресом сервера — что это такое, рассказано в статье Что такое домен. И сайт должен открываться по http://: через порт 80 Certbot подтверждает, что домен ваш.
Затем выпустите сертификат заново, перечислив все имена:
sudo certbot certonly --nginx --cert-name example.com -d example.com -d www.example.comПосле --cert-name укажите название сертификата из строки Certificate Name (шаг 2), после каждого -d — одно имя сайта. Certbot спросит, точно ли нужно изменить список имён (Did you intend to make this change?): введите U — Update certificate — и нажмите Enter.
Если всё прошло успешно, Certbot напишет Successfully received certificate и покажет, где лежат файлы. Сертификат с тем же названием остаётся в той же папке /etc/letsencrypt/live/example.com/, поэтому пути в настройках nginx менять не нужно. Если Certbot сообщает об ошибке проверки домена, значит новое имя ведёт не на этот сервер или закрыт порт 80.
Теперь проверьте, что в блоке server с портом 443 перечислены оба имени. Файл настроек сайта лежит в папке /etc/nginx/sites-available/ — это тот файл, который вы создавали по инструкции Как разместить сайт на VPS: nginx с нуля. Откройте его командой sudo nano /etc/nginx/sites-available/example.com, найдите блок server со строкой listen 443 и сверьте строки server_name и ssl_certificate — они должны быть такими:
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# остальные строки блока оставьте без изменений
}Если что-то пришлось исправить, сохраните файл — Ctrl+O, Enter, затем Ctrl+X — и проверьте настройки:
sudo nginx -tВ ответе должны быть слова syntax is ok и test is successful. Если вместо них сообщение об ошибке, в нём указаны файл и номер строки: исправьте строку и проверьте снова. Когда проверка прошла, примените настройки:
sudo systemctl reload nginxЕсли команда ничего не ответила, настройки применены.
Если на сервере несколько сайтов
Каждому сайту нужен свой сертификат и свой блок server с портом 443. Например, для shop.example.com сначала выпустите сертификат:
sudo certbot certonly --nginx -d shop.example.comЗатем укажите его в блоке server этого сайта:
server {
listen 443 ssl;
server_name shop.example.com;
ssl_certificate /etc/letsencrypt/live/shop.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/shop.example.com/privkey.pem;
# остальные строки блока оставьте без изменений
}После правок сохраните файл — Ctrl+O, Enter, затем Ctrl+X — и проверьте настройки:
sudo nginx -tЕсли в ответе есть слова syntax is ok и test is successful, примените настройки:
sudo systemctl reload nginxПереадресация с www не заменит сертификат
Если сайт должен открываться только без www, переадресация (редирект) с www.example.com на example.com ошибку не уберёт: браузер проверяет сертификат раньше, чем получает переадресацию. Поэтому сертификат нужен на оба имени, а переадресацию настраивают уже в блоке server для www — как, рассказано в статье Редирект 301 Moved Permanently: что значит и как настроить.
На обычном хостинге
На виртуальном хостинге сертификат выпускают в панели управления, в разделе об SSL. Проверьте, для каких имён он выпущен: если www или поддомена нет в списке, выпустите сертификат заново с нужными именами. Где это в панелях разных хостеров — в таблице статьи Бесплатный SSL-сертификат. Если имена указаны верно, а ошибка остаётся, напишите в поддержку адрес сайта и код ошибки.
Соседние ошибки
| Ошибка | Чем отличается |
|---|---|
| NET::ERR_CERT_AUTHORITY_INVALID | Chrome не доверяет тому, кто выпустил сертификат, — например, сертификат самоподписанный |
| NET::ERR_CERT_DATE_INVALID | Срок сертификата истёк или на устройстве неверные дата и время |
| NET::ERR_CERT_REVOKED | Центр сертификации отозвал сертификат |
| «Подключение не защищено» | Общая страница о предупреждении и всех кодах ошибок сертификата |
Источники
- Исходный код Chromium: net_error_list.h — ошибка -200.
- Исходный код Chromium: error_info.cc и русские строки Chrome — пояснения на странице предупреждения.
- Исходный код Chromium: cert_status_flags.cc — какую ошибку Chrome показывает, если проблем несколько.
- RFC 9525 — как сверять имя сайта с сертификатом: разделы 1.3 и 6.3.
- Документация nginx: как nginx обрабатывает запросы и выбор HTTPS-сервера по имени.
- Документация Certbot: изменение имён в сертификате и управление сертификатами.
Текст предупреждения взят из исходного кода и переводов Chrome.
Сверено 8 октября 2026 года.
Что почитать дальше
- Бесплатный SSL-сертификат — как получить сертификат Let's Encrypt и настроить его продление.
- Как разместить сайт на VPS: nginx с нуля — где лежат настройки сайта в nginx.
- «Подключение не защищено» — все коды ошибок сертификата на одной странице.
Проверено и обновлено: 08.10.2026