强制node.js使用OpenSSL的非发行版副本

Force node.js to use non-distro copy of OpenSSL

本文关键字:副本 node js 使用 OpenSSL 强制      更新时间:2023-09-26

是否有可能让Node.js使用我自己编译的本地OpenSSL版本?我可以用环境变量或其他方式设置吗?

我不得不使用一个旧的Node.js版本,但有一个自己编译的OpenSSL版本。

node -pe process.versions

告诉我,Node.js正在使用旧的OpenSSLlib。

有没有可能让Node.js使用我自己编译的本地OpenSSL版本?

是的。

在Linux上,使用LD_LIBRARY_PATH。在使用OS X时,DYLD_LIBRARY_PATH

一定要选择一个新的OpenSSL,它与任何Node.js链接的对象都是二进制兼容的。例如,OpenSSL 0.9.7和0.9.8是二进制兼容的,但与1.0.0、1.0.1、1.0.2或1.1.0等其他版本不兼容。OpenSSL 1.0.0、1.0.1和1.0.2是二进制兼容的。

或者,从源代码构建Node.js,并静态链接到您选择的OpenSSL版本。它将避免LD预加载技巧。(由于-rpath在OS X上不起作用,所以我暂不支持它)。