從 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。