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

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

我必须使用较旧的Node.js版本,但使用自己编译的OpenSSL版本。

node -pe process.versions

告诉我,Node.js正在使用较旧的OpenSSL库。

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

是。

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

一定要select一个与任何Node.js链接的二进制兼容的新OpenSSL。 例如,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是二进制兼容的。

或者,从源代码构buildNode.js,并静态链接到您select的OpenSSL版本。 这将避免LD预装技巧。 (我旁边踩-rpath因为它不适用于OS X)。