Node.js 16生命周期提前结束

作者:ChatGPT
原文:https://nodejs.org/en/blog/announcements/nodejs16-eol

Node.js 团队宣布 Node.js16 生命周期提前结束,这主要是为了与OpenSSL 1.1.1的支持结束日期相一致,Node.js 16 的生命周期结束日期提前七个月至 2023 年 9 月 11 日。
Node.js 16生命周期提前结束_第1张图片

为什么要这样做?

当我们发布Node.js 16时,希望能够包含OpenSSL 3。然而,由于发布时间的关系,我们只能使用OpenSSL 1.1.1发布了Node.js 16。OpenSSL 1.1.1的支持将持续到2023年9月11日,比Node.js 16的计划结束日期(2024年4月)提前了七个月。

考虑了以下几个选项:

  1. 什么都不做。Node.js 16将在其生命周期的最后七个月内面临OpenSSL 1.1.1的漏洞风险。
  2. 在2023年9月提前结束对Node.js 16的支持,与OpenSSL 1.1.1的生命周期结束日期相一致。我们在结束对Node.js 8的支持时也采取了这样的做法,提前四个月以与OpenSSL 1.0.2的生命周期结束日期相一致。
  3. 尝试切换到OpenSSL 3。根据对Node.js 17和18(使用OpenSSL 3)的问题报告以及对我们的测试套件进行的调整,这被认为是有风险的,并且可能会导致某些应用程序的兼容性问题。
  4. 尝试使用CentOS Stream 8中的OpenSSL 1.1.1版本替换原有的OpenSSL 1.1.1。CentOS Stream 8是上游的Red Hat Enterprise Linux 8(RHEL 8),其openssl软件包将在RHEL 8的支持期内得到支持(直到2024年5月31日)。不幸的是,针对CentOS Stream 8所做的OpenSSL更改导致了差异(例如,删除了几个算法),这将对某些应用程序造成兼容性问题。

经过考虑,我们决定选择风险最小的选项,避免在发布版本中切换OpenSSL可能带来的破坏性变化,并将Node.js 16的生命周期结束日期提前至与OpenSSL 1.1.1的支持结束日期相同的2023年9月11日。

你可能感兴趣的:(node.js)