Your connection is not private: что означает предупреждение и как это исправить
"Your connection is not private" - это заголовок предупреждения Chrome для всего семейства ошибок сертификата NET::ERR_CERT_*, показываемый всякий раз, когда браузер получает сертификат, которому не может полностью довериться. Точный код под заголовком, видимый при клике на "Advanced", сообщает, какая именно это проблема.
Что означает предупреждение
В отличие от ERR_SSL_PROTOCOL_ERROR, которая срабатывает еще до оценки какого-либо сертификата, это предупреждение всегда означает, что сертификат был получен и оценен, но провалил одну конкретную проверку: его даты, издателя, совпадение имени хоста либо статус отзыва. Chrome группирует все это под одним тревожным заголовком, поскольку лежащий в основе риск одинаков в любом случае (соединение может разговаривать не с тем, с кем оно думает), но исправление полностью зависит от того, какой конкретный код NET::ERR_CERT_* стоит за ним.
Как проявляется предупреждение
Chrome показывает предупреждение на весь экран красным цветом: "Your connection is not private - Attackers might be trying to steal your information from example.com" со ссылкой "Proceed to example.com (unsafe)", скрытой под "Advanced". Firefox показывает "Warning: Potential Security Risk Ahead" с конкретным кодом ошибки. Safari показывает "This Connection Is Not Private". Edge близко повторяет формулировку Chrome.
Что означают конкретные коды ошибок
| Код | Что означает |
|---|---|
| NET::ERR_CERT_DATE_INVALID | Окно действия сертификата не покрывает текущий момент - либо он истек, либо еще не вступил в силу, либо у устройства посетителя неверно идут часы. |
| NET::ERR_CERT_AUTHORITY_INVALID | Сертификат выпущен не тем удостоверяющим центром, которому доверяет браузер. Обычно это самоподписанный сертификат, отсутствующий промежуточный сертификат в цепочке либо сертификат от нераспознанного или частного УЦ. |
| NET::ERR_CERT_COMMON_NAME_INVALID | Сертификат действителен, но выпущен не для того имени хоста, который посещается. Неверная или отсутствующая запись в списке Subject Alternative Name (SAN) сертификата, часто после добавления нового поддомена без перевыпуска сертификата для его покрытия. |
| NET::ERR_CERT_REVOKED | Удостоверяющий центр явно отозвал этот сертификат до истечения срока его действия, обычно потому что закрытый ключ был скомпрометирован либо сертификат был выпущен ошибочно. |
Дело в вашем устройстве или в сайте?
Если предупреждение появляется на многих разных сайтах, а не только на одном, сначала проверьте часы своего устройства: сильно неверная дата ломает проверку сертификата сразу везде и является одной из самых частых причин этого предупреждения в целом. Если это происходит только на одном сайте и выглядит так же с других устройств и сетей, исправлять нужно сам сертификат на сервере. SSL-проверка из нескольких мест за один проход подтверждает, стабильна ли проблема сертификата повсюду или специфична для настройки одного посетителя.
Как исправить "Your connection is not private"
Если вы посетитель
- Проверьте системную дату и время и настройте автоматическую синхронизацию; одно только это устраняет значительную долю предупреждений ERR_CERT_DATE_INVALID, никак не связанных с сайтом.
- Если вы в публичном Wi-Fi, поищите captive-портал. Некоторые сети отелей, аэропортов или кафе перехватывают первый HTTPS-запрос собственным сертификатом, чтобы перенаправить вас на страницу входа, что вызывает именно это предупреждение; сначала откройте обычный сайт по HTTP либо страницу входа в сеть.
- Проверьте, не перехватывает ли антивирус соединение собственным сертификатом при сканировании HTTPS; временное отключение и повторная попытка изолирует, является ли это ПО причиной.
- Никогда не проходите дальше через предупреждение на сайте, где вы собираетесь вводить пароль, платежные данные или другую чувствительную информацию. Предупреждение существует именно потому, что браузер не может подтвердить, что он действительно разговаривает с тем сайтом, который вы намеревались посетить; обход этого предупреждения полностью убирает эту гарантию.
- Если вы узнаёте сайт и доверяете ему (например, внутренний корпоративный инструмент с самоподписанным сертификатом), это тот единственный случай, когда переход дальше через предупреждение, после понимания точной причины его появления, - разумный выбор.
Если вы администрируете сайт
- Устанавливайте полную цепочку сертификатов, а не только листовой сертификат. ERR_CERT_AUTHORITY_INVALID часто вызвана отсутствующим промежуточным сертификатом, а не действительно недоверенным издателем; проверьте командой
openssl s_client -connect example.com:443 -showcerts, что полная цепочка отдается в правильном порядке. - Перевыпустите сертификат с правильными записями SAN, когда бы ни появилась ERR_CERT_COMMON_NAME_INVALID, убедившись, что перечислено каждое реально используемое имя хоста и поддомен, а не только голый домен.
- Продлевайте сертификат до истечения, а не после, и настройте напоминание либо автоматическое продление (например, certbot от Let's Encrypt с задачей cron) заблаговременно до даты истечения, а не реагируя на предупреждение уже после того, как о нем начнут сообщать посетители.
- Если сертификат был выпущен ошибочно либо закрытый ключ был раскрыт, немедленно отзовите и перевыпустите его, а не оставляйте действующим; ERR_CERT_REVOKED на старом сертификате - ожидаемое и правильное поведение, как только это происходит.
- Никогда не используйте самоподписанный сертификат на публичном сайте. Он уместен для внутренних инструментов, где каждый клиент можно явно настроить доверять ему, но он вызовет ERR_CERT_AUTHORITY_INVALID у каждого обычного посетителя публичного сайта.
Похожие ошибки
- ERR_CERT_DATE_INVALID подробнее рассматривает случай просроченного или еще не вступившего в силу сертификата, включая аспект расхождения часов.
- ERR_SSL_PROTOCOL_ERROR - сбой более раннего этапа, где рукопожатие ломается еще до получения какого-либо сертификата, в отличие от каждого случая на этой странице.
Firefox, Safari и Edge распределяют те же лежащие в основе причины по слегка различающимся ярлыкам и цветам, но разделение "дело в моем устройстве" против "дело в сертификате сайта" сохраняется во всех них: проблема с часами или перехватом на одной машине вызывает предупреждение везде, куда бы эта машина ни заходила, тогда как настоящий дефект сертификата вызывает его у каждого посетителя этого одного сайта, независимо от того, какой браузер он использует.
Как это предотвратить
Настолько заметная проблема с сертификатом стоит доверия в момент, когда посетитель ее видит, а истечение срока действия в частности полностью предсказуемо заранее. Мониторинг срока действия SSL-сертификата отслеживает оставшиеся дни у сертификата и оповещает до его истечения, а не после того, как посетители начнут видеть предупреждение. HostTracker мониторит сайты с 2004 года из 300+ контрольных точек в 158 городах и оповещает по email, SMS, голосовым звонком, через Slack, Telegram и другие каналы.
Часто задаваемые вопросы
Бывает ли безопасно нажимать "Proceed anyway"?
Только когда вы точно понимаете, почему появилось предупреждение, и все равно доверяете сайту, например внутреннему инструменту с самоподписанным сертификатом, который вы сами настроили. Никогда не проходите дальше на сайте, где вы собираетесь ввести пароль или платежную информацию.
Почему я вижу это предупреждение на каждом сайте, а не только на одном?
Это почти всегда указывает на то, что у вашего собственного устройства неверно идут часы, либо изредка на антивирус или корпоративное ПО, перехватывающее HTTPS-трафик на вашей машине. Сначала проверьте системную дату.
В чем разница между просроченным сертификатом и отозванным?
Просроченный сертификат просто достиг конца окна своего действия - рутинное и ожидаемое событие, если он не был продлен вовремя. Отозванный сертификат был явно признан недействительным досрочно его издателем, обычно из-за проблемы безопасности, такой как скомпрометированный закрытый ключ.
Я добавил новый поддомен, и теперь показывается это предупреждение. Почему?
Список SAN у существующего сертификата, скорее всего, не включает новый поддомен. Перевыпустите сертификат так, чтобы он покрывал каждое реально используемое имя хоста, включая любые новые поддомены.
Действительно ли страница входа в Wi-Fi отеля или аэропорта вызывает предупреждение о сертификате?
Да. Captive-портал, перехватывающий ваш первый HTTPS-запрос, чтобы перенаправить вас на свою страницу входа, не может предъявить валидный сертификат для сайта, к которому вы пытались обратиться, поэтому браузер правильно на это указывает. Сначала войдя через портал, вы обычно решаете эту проблему.