尝试在Windows上安装NPM软件包时遇到证书错误。我正在使用Node v10.9.0

时间:2018-09-01 11:56:48

标签: node.js npm

  

npm错误!代码ERR_TLS_CERT_ALTNAME_INVALID
  npm ERR! errno ERR_TLS_CERT_ALTNAME_INVALID
  npm ERR!对https://registry.npmjs.org/http-server的请求失败,原因:主机名/ IP与证书的altname不匹配:主机:registry.npmjs.org。不在证书的替代名称中:DNS:a.sni.fastly.net,DNS:a.sni.global-ssl.fastly.net

2 个答案:

答案 0 :(得分:4)

在NPM服务器上,这似乎是一个真正的问题。在浏览器中导航到https://registry.npmjs.org/http-server时,我看到相同的错误。服务器确实没有有效的证书。没有Windows专用。

NPM报告存在缓存不正确的DNS信息的问题,这里:https://status.npmjs.org/incidents/v22ffls5cd6h

在清除缓存之前,他们建议您执行以下操作:

  1. dig registry.npmjs.com @1.1.1.1
  2. 将找到的IP添加到您的/ etc / hosts文件中。

更新:对于使用yarn的用户而言,这有点不相关:NPM注册表的Yarn镜像也似乎也受到此问题的影响,因此目前看来,我们可以要做的是等到问题解决,或者Yarn团队在服务器上应用解决方法。

答案 1 :(得分:1)

将通过dig命令找到的IP添加到主机文件中的官方建议解决方案对我不起作用。

我发现npm有一个strict-ssl配置选项。

使用strict-ssl = false在我的项目文件夹中创建.npmrc文件即可解决此问题。

我发现此解决方案更安全,更隔离,因为可能无法所有人都编辑hosts文件,当修改主机文件时,它将导致计算机发出的每个请求都被路由到特定的IP地址。

我计划在解决此临时问题后删除该文件。