Битлента
Ошибки и коды3 мин чтения·

self signed certificate in certificate chain: самоподписанный сертификат в цепочке

Что значит ошибка self signed certificate in certificate chain, откуда берётся чужой сертификат в цепочке и как исправить её, не отключая проверку целиком.

Чем эта ошибка отличается от соседних

В отличие от «unable to get local issuer certificate», здесь программа цепочку получила целиком и дошла до её вершины, но эта вершина оказалась самоподписанным сертификатом, которого нет в списке доверенных. Публичные центры сертификации самоподписанными корнями тоже пользуются, но их корни уже лежат в вашем хранилище. Если корень незнакомый, программа останавливается.

Сообщение часто встречается у npm, Node.js, Python, git и Docker, то есть у инструментов, использующих собственные списки доверенных корней.

Кто подкладывает свой корень

Самая частая причина в рабочих и учебных сетях: шлюз безопасности расшифровывает HTTPS, проверяет содержимое и подписывает трафик своим сертификатом. Браузеры на управляемых компьютерах этот корень знают, а консольные утилиты и среды разработки нет.

Вторая причина: локальный антивирус с проверкой защищённых соединений. Он делает то же самое на одном компьютере. Третья: отладочные прокси, которыми разработчики просматривают запросы. Четвёртая: сервер разработки или внутренний сервис с самоподписанным сертификатом, к которому обращается ваш код.

Реже встречается настоящая подмена сертификата в недоверенной сети, поэтому на чужом публичном Wi-Fi сообщение стоит воспринимать серьёзно, а не сразу «лечить».

Как понять, чей это сертификат

Откройте нужный адрес в браузере и просмотрите цепочку сертификатов: посмотрите, кто указан издателем самого верхнего сертификата. Если там название вашей компании, антивируса или отладочной программы, вы нашли источник.

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

Убедитесь, что вы находитесь в сети, которой доверяете. Если вы дома на своём компьютере, а издатель незнакомый и связан не с вашим ПО, остановитесь и не продолжайте передачу паролей.

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

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Правильные способы исправить

Добавьте корневой сертификат вашей организации или антивируса в доверенные для конкретной программы. У многих инструментов есть параметр или переменная окружения, в которой указывается файл с дополнительными корнями. Файл вам может выдать системный администратор.

Для собственного сервера с самоподписанным сертификатом надёжнее выпустить сертификат в публичном или внутреннем центре и распространить его корень на нужные машины, чем выключать проверку в каждом клиенте.

Отключение проверки (ключи вроде «не проверять TLS») допустимо только временно и на изолированном стенде. В постоянных настройках оно создаёт лазейку, через которую подмену сервера не отличить от настоящего ответа.

Когда проблема не у вас: self signed certificate in certificate chain

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

Отдельно упомянем командные строки разработчиков: там ошибка нередко появляется после установки корпоративного клиента безопасности или нового антивируса, хотя вчера всё работало. Спросите себя, что менялось на машине незадолго до появления сообщения.

Что не стоит делать: self signed certificate in certificate chain

Самый частый соблазн: скопировать из интернета команду, отключающую проверку сертификатов для всей программы или всей системы. Она снимает сообщение, но заодно лишает шифрование главного смысла, ведь клиент перестаёт отличать настоящий сервер от подставного. Если такая настройка когда-то была включена ради отладки, проверьте, не осталась ли она в файлах конфигурации.

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

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
sslпроксисертификатыошибки

Часто задаваемые вопросы

Читайте также