从 2021 年 10 月 4 日开始,所有与 npm 网站和 npm 注册表的连接(包括软件包安装)都必须使用 TLS 1.2 或更高版本。
GitHub 致力于确保我们服务的安全性和我们用户的隐私。之前,我们取消了对 GitHub 服务 TLS 1.0 和 TLS 1.1 的支持。今年,我们将同样弃用公共 npm 注册中心 npmjs.com 的非 HTTPS 访问以及 TLS 1.0 和 TLS 1.1。
幸运的是,npm 注册中心 99% 的流量已经在使用 TLS 1.2,我们预计大多数用户不会受到这种弃用的影响。从 v0.10.0 开始的所有 Node.js 二进制版本都包含对 TLS 1.2 的支持,因此大多数使用最新 Node.js 和 npm 版本的用户不需要进行任何更改。但是,某些用户可能使用不受支持的版本,或者可能在不支持的情况下使用自定义编译的 Node.js 二进制文件。
详细时间表
虽然我们将从 2021 年 10 月 4 日开始至少强制执行 TLS 1.2,但我们还将采取措施在弃用之前提醒受影响的用户注意此更改。
- 从 8 月 24 日开始,未使用 TLS 1.2 的用户在运行 npm 命令时将看到一条通知,其中包含指向此博客文章的链接。
- 9 月 22 日,我们将从 UTC 时间 05:00 开始实施 TLS 1.2 一小时。
- 9 月 27 日,我们将在 UTC 时间 10:00 开始执行 TLS 1.2 一小时,并在 UTC 时间 18:00 再次执行一小时。
- 最后,在 9 月 29 日,我们将从 UTC 时间 13:00 开始实施 TLS 1.2 六个小时。
确保您的兼容性
要确保您的 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。