背景:
1.项目中中间件是通过源码编译安装的
例如:apache、nginx
2.中间间需要openssl的依赖,例如nginx
3.通过漏洞扫描工具,扫描出openssl漏洞,提示版本过低
4.源码安装的apache、nginx适配openssl的版本是1.0.2q,中间件、代码 中其他版本未做适配,或者不支持其他版本,
5.需要在原有组件上做版本升级
操作:
1、修改源码文件名
openssl-1.0.2q --->openssl-1.0.2w
2、修改源码中所有文件中设计的版本,以1.0.2q版本为例,修改为1.0.2w
openssl-1.0.2w\CHANGES
openssl-1.0.2w\crypto\opensslv.h
openssl-1.0.2w\Makefile
openssl-1.0.2w\NEWS
openssl-1.0.2w\README
3、编译:
tar -xvf openssl-1.0.2q.tar.gz
cd openssl-1.0.2q/
./config --prefix=/opt/openssl
make CC='gcc -fPIC'
make install
4、查看版本
/opt/openssl/bin/openssl version
5、编译依赖于openssl的组件
例如:apache
tar -xvf httpd-2.4.39.tar.gz
cd httpd-2.4.39/
./configure --prefix=/opt/apache --with-apr=/opt/apr --with-apr-util=/opt/apr-util --with-pcre=/opt/pcre --with-ssl=/opt/openssl
make
make instal
备注:
编译openssl的时候。执行完:config命令会生成openssl二进制文件,已经版本号编译进去,,所以需要修改所有的版本号,这样执行完config命令后生成的openssl二进制文件会是修改后的版本