npm SSL错误:使用sha512时完整性校验和失败

时间:2019-07-09 16:11:12

标签: node.js ssl networking npm

我无法使用npm安装任何东西!

我在用什么?

  • 节点v10.16.0

  • npm v6.9.0

  • windows 7 x64

  • 带有MITM内容检查工具的企业代理(很可能是罪魁祸首)

我在做什么?

npm install node-sass -g

发生了什么事?

根据配置,我会遇到以下两个错误之一:

npm ERR! code SELF_SIGNED_CERT_IN_CHAIN
npm ERR! code EINTEGRITY
npm ERR! sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== integrity checksum failed when using sha512: wanted sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== but got sha512-jIvvQweolCmipqZXjsC8NUIKS/iux7/bKsBBZQCCMibvCg/eNyz0L7L7ddO9r1dRStqWyBlrHFUPRrF56wCr/A==. (2121 bytes)

我尝试了什么?

代理配置:

npm config set http-proxy http://user:password@proxy:port

npm config set https-proxy http://user:password@proxy:port

仅此一项就可以工作。

全新安装:

我已卸载Node和npm,从npm删除了文件夹npm-cacheC:\Users\me\AppData\Roaming,并从.npmrc删除了C:\Users\me。 我还跑过npm cache clean --forcenpm cache verify

在此之后,我尝试重新安装Node v10.16.0和v10.15.3(npm 6.4.1)

禁用SSL:

  • npm config set strict-ssl false
  • 将Windows本地和系统环境变量NODE_TLS_REJECT_UNAUTHORIZED设置为0

CA配置:

我已经从Internet Options > content > certificates > trusted root certification authorities导出了所有公司证书。我已将它们导出到单个Base 64编码的X.509 .cer文件,并创建了一个单独的bundle.cer文件并将它们合并在一起。

然后我尝试通过以下所有方式使用它:

  • npm config set cafile C:\\certs\\cert1.cer

  • npm config set cafile C:\\certs\\cert2.cer

  • npm config set cafile C:\\certs\\cert3.cer

  • npm config set cafile C:\\certs\\bundle.cer

  • npm config set ca BASE64-code-taken-from-each-cer-file

  • 将Windows环境变量NODE_EXTRA_CA_CERTS设置为上面的每个文件。

打包锁定:

有些帖子建议删除package-lock.json。我没有这个,因为我要在全球范围内安装,而不是在本地项目中安装。我尝试在本地目录中不安装全局标志的情况下进行安装。我遇到同样的SSL问题。

帮助!

0 个答案:

没有答案