整理 | 祝涛

从2021年10月4日开始,所有与npm网站和npm注册表的连接(包括软件包安装)必须使用TLS 1.2或更高版本。

npm注册表已弃用TLS 1.0和TLS 1.1_自定义

然而,npm注册表99%的用户已经在使用TLS 1.2,预计大多数用户不会受到影响。从v0.10.0开始的所有Node.js二进制版本都支持TLS 1.2,因此最新版本的Node.js和npm用户无需进行任何更改。但是,有些用户可能使用了不受支持的版本,或者可能使用了自定义编译的Node.js二进制文件而不受支持。

具体时间安排

  • 从8月24日开始,未使用TLS 1.2的用户在运行npm命令时,将会看到一条通知,该通知带有相关链接,点击便可以看见具体的调整计划。
  • 9月22日,将在国际协调时间05:00开始实施TLS 1.2,时间长达一小时。
  • 9月27日,我们将在国际协调时间10:00开始实施TLS 1.2,并在国际协调时间18:00再次实施1小时。
  • 最后,在9月29日,我们将在国际协调时间 13:00实施TLS 1.2,时间长达6小时。

确保兼容性

为了确保用户的npm版本支持TLS 1.2,可以从已经禁用TLS 1.0和TLS 1.1的HTTPS端点安装一个测试包:

npm install -g https://tls-test.npmjs.com/tls-test-1.0.0.tgz

然后就会收到消息:

Hello! The tls-test package was successfully downloaded and installed.
Congratulations! Your package manager appears to support TLS 1.2.

如果收到了TLS错误消息,那么建议你升级到当前支持的Node.js版本和最新版本的npm v7。