Я сталкиваюсь с ошибкой сертификата при попытке установить пакеты NPM в Windows. Я использую Node v10.9.0
npm ERR! код ERR_TLS_CERT_ALTNAME_INVALID
npm ERR! errno ERR_TLS_CERT_ALTNAME_INVALID
npm ERR! запрос на https://registry.npmjs.org/http-server не удалось, причина: имя хоста /IP не соответствует именам сертификатов: Host: registry.npmjs.org. не находится в именах cert: DNS: a.sni.fastly.net, DNS: a.sni.global-ssl.fastly.net
Ответы
Ответ 1
Похоже, что это настоящая проблема на серверах NPM. Я вижу ту же ошибку при навигации по https://registry.npmjs.org/http-server
в браузере. У сервера действительно нет действительного сертификата. Ничего особенного в Windows.
NPM сообщает о проблеме с некорректной кешировкой DNS-данных: https://status.npmjs.org/incidents/v22ffls5cd6h
Пока тайник не очистится, они предлагают сделать следующее:
-
dig registry.npmjs.com @1.1.1.1
- Добавьте IP-адрес в файл /etc/hosts.
Обновление: Немного несвязано, для тех, кто использует yarn
. Яркое зеркало реестра NPM, похоже, тоже затронуто этой проблемой, поэтому кажется, что на данный момент все, что мы можем сделать, - это подождать, пока проблема не будет решена, или команда "Пряжа" применит обходной путь на сервере.
Ответ 2
Официально предложенное решение с добавлением IP-адресов, найденных с помощью команды dig в файл hosts, каким-то образом не сработало для меня.
Я обнаружил, что для npm существует опция конфигурации strict-ssl.
Создание файла.npmrc в моей папке проекта с помощью strict-ssl = false
решило проблему.
Я считаю это решение более безопасным и более изолированным, так как редактирование файла hosts может оказаться невозможным для всех и когда оно есть, это приведет к тому, что каждый запрос, сделанный с вашего компьютера, будет перенаправлен на определенный IP-адрес.
Я планирую удалить этот файл, когда исправлена эта временная проблема.