【问题标题】:I am facing a certificate error while trying to install NPM packages on Windows. I am using Node v10.9.0尝试在 Windows 上安装 NPM 包时遇到证书错误。我正在使用节点 v10.9.0
【发布时间】:2019-02-07 05:14:39
【问题描述】:

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

【问题讨论】:

  • 这真的很有趣,我确认registry.npmjs.org 证书无效,它是发给a.sni.fastly.net 所以域名不匹配(Chrome 显示ERR_CERT_COMMON_NAME_INVALID)。我不认为这是有意的,并且在 npm 注册表方面看起来像是一个严重的问题。希望他们尽快解决。
  • 谢谢大家!!这个问题现在似乎已经解决了。

标签: node.js npm


【解决方案1】:

这似乎是 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的人:Yarn的NPM注册表镜像似乎也受到了这个问题的影响,所以目前我们所能做的似乎是等到问题自行解决或 Yarn 团队在服务器上应用解决方法。

【讨论】:

    【解决方案2】:

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

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

    使用strict-ssl = false 在我的项目文件夹中创建一个 .npmrc 文件解决了这个问题。

    我发现此解决方案更安全、更独立,因为可能并非所有人都可以编辑 hosts 文件,而且当编辑主机文件时,它会导致从您的计算机发出的每个请求都被路由到特定的 IP 地址。

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

    【讨论】:

      猜你喜欢
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 2015-07-28
      相关资源
      最近更新 更多