内容提要
Node.js 16的结束支持日期提前至2023年9月11日,以与OpenSSL 1.1.1的支持结束日期一致。由于未能在Node.js 16中包含OpenSSL 3,决定避免在发布中更改OpenSSL,以降低风险。
延伸解读
为何提前结束支持
Node.js 16 原计划于 2024 年 4 月结束支持,但因其依赖的 OpenSSL 1.1.1 将于 2023 年 9 月 11 日停止支持,官方决定将 Node.js 16 的结束支持日期提前七个月至同一天。这样可避免在 OpenSSL 1.1.1 停止支持后,Node.js 16 仍继续使用无安全更新的加密库,从而降低潜在安全风险。
未包含 OpenSSL 3 的原因
在规划 Node.js 16 时,官方希望包含 OpenSSL 3,但由于发布时机不匹配,最终只能随 OpenSSL 1.1.1 发布。OpenSSL 1.1.1 的支持截止日期早于 Node.js 16 的原定结束支持日期,这导致了两者支持周期的不一致,进而促使官方调整 Node.js 16 的支持计划。
避免发布中切换 OpenSSL
官方评估了多种方案后,认为在 Node.js 16 的发布周期内切换 OpenSSL 版本可能引入破坏性变更,风险较高。因此决定不进行此类切换,而是直接提前结束支持日期。这一选择旨在保持稳定性,避免对现有用户造成意外影响。
Q&A
Node.js 16的结束支持日期是什么时候?
Node.js 16的结束支持日期是2023年9月11日。
为什么Node.js 16的支持日期提前?
因为Node.js 16未能包含OpenSSL 3,决定将结束支持日期提前至OpenSSL 1.1.1的支持结束日期,以降低风险。
Node.js 16与OpenSSL 1.1.1的关系是什么?
Node.js 16使用的是OpenSSL 1.1.1,并且其结束支持日期与OpenSSL 1.1.1的支持结束日期一致。
Node.js 16的原定结束支持日期是什么时候?
Node.js 16的原定结束支持日期是2024年4月。
Node.js 16为何未能包含OpenSSL 3?
由于发布时机的原因,Node.js 16未能包含OpenSSL 3。
提前结束支持对用户有什么影响?
提前结束支持可能导致用户需要尽快升级到更新版本,以确保安全性和功能性。