使用自定义 OpenSSL 库编译 nginx

关注安全
0 561

编译安装 nginx 时,默认使用系统自带的 OpenSSL 库,但其一般很老,不支持如 SDPY 等新功能。--with-openssl 参数虽然可以指定 OpenSSL 路径,但只支持 OpenSSL 的源代码,不支持已编译好的 OpenSSL。每回更新 nginx 都要重新编译 OpenSSL 肯定很麻烦,网上找到一个方案,觉得很好,记录下来。

打开nginx源文件下的,修改 nginx-1.14.0/auto/lib/openssl/conf 大约第 39行至 42 行,把:

CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"

CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"

CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"

CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a

修改为:

CORE_INCS="$CORE_INCS $OPENSSL/include"

CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"

CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"

CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"

这样,我们就可以在编译安装 nginx 时,手动指定已编译好的 OpenSSL 了,比如 --with-openssl=/usr/include/openssl。

遇到事例:因为要升级ssh至最新版本openssl也需要跟着升级到了OpenSSL 1.1.1i此版本,因后面需要编译安装nginx服务,在编译时就遇到如下报错:找不到openssl路径

我就按上面方法( nginx-1.14.0/auto/lib/openssl/conf 大约第 39行至 42 行)进行修改后,在指定openssl升级后的参数路径 --with-openssl=/usr/local/ssl即可编译完成了。

-----------------------------------

©著作权归作者所有:来自51CTO博客作者M_ling的原创作品,请联系作者获取转载授权,否则将追究法律责任

使用自定义 OpenSSL 库编译 nginx

https://blog.51cto.com/meiling/2165811