升级openssl
一、OpenSSL升级相关源码包下载地址
zlib http://www.zlib.net/zlib-1.2.11.tar.gz
zlib其他版本下载地址 http://www.zlib.net/fossils/
openssl-fips http://www.openssl.org/source/ openssl-fips-2.0.16.tar.gz
OpenSSL http://www.openssl.org/source/openssl-1.1.0g.tar.gz
安装依赖包
yum -y install gcc pam-devel zlib-devel openssl-devel
二、升级openssl环境至openssl-1.1.0g
1、查看源版本
# openssl version
OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
2、进入https://www.openssl.org/source/下载openssl-1.1.0g.tar.gz
wget http://www.openssl.org/source/openssl-1.1.0g.tar.gz
三、相关包编译安装
1、编辑安装zlib
解压
tar -xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install
查看(zlib默认安装在/usr/local/lib目录下):
ll /usr/local/lib
2、安装openssl-fips
此为FIPS 140-2 support module for openssl, 具体说明参见http://www.openssl.org/docs/fips
[root@baby openssl-fips-2.0.16]# tar zxpf openssl-fips-2.0.16.tar.gz
# cd openssl-fips-2.0.16
# ./config
# make && make install
生成路径在:
/usr/local/ssl/fips-2.0/
3、安装perl
安装openssl1.1.0g是需要perl 5.10.0以上版本,我的是红帽5.4里面的perl是5.8.8;
官网下载:https://www.perl.org/get.html
下载地址:http://www.cpan.org/src/
# wget http://www.cpan.org/src/5.0/perl-5.26.1.tar.gz
# tar -xzf perl-5.26.1.tar.gz
# cd perl-5.26.1
# ./Configure -des -Dprefix=/usr/local/perl -Dusethreads -Uversiononly
参数-Dprefix指定安装目录为/usr/local/perl
参数-Dusethreads开启线程支持
# make
# make test
# make install
接下来替换系统原有的perl
1 #mv /usr/bin/perl /usr/bin/perl.oldbak 2 3 #ln -s /usr/local/perl/bin/perl /usr/bin/ 4 5 #ln -s /usr/local/perl/bin/perl5.26.1 /usr/bin/ 6 7 #perl -v
4、安装openssl
# tar -xf openssl-1.1.0g.tar.gz # cd openssl-1.1.0g [root@localhost openssl-1.1.0g]# ./config --prefix=/usr --openssldir=/usr/ shared zlib
# make
需带上–shared参数 否则会出现头文件和库文件不匹配
由于我使安装在原路径下,所以我将旧的配置文件挪了一下位置
mv /usr/bin/openssl /usr/bin/openssl.oldbak
mv /usr/include/openssl /usr/include/openssl.oldbak
[root@baby openssl-1.1.0g]# make install
查看是否升级成功
[root@zj ~]# openssl version -a
若需要结合fips模块,操作步骤和上面一样的,编译参数如下:
[root@localhost openssl-1.1.0g]# ./config fips --prefix=/usr--openssldir=/usr/ shared zlib 加上fips进行编译
至此已全部完成OpenSSL的升级工作
番外说明:
make
这一步是用来编译的,它从Makefile中读取指令,大多数的源代码包都经过这一步进行编译,当然有些perl或python编写的软件需要调用perl或python来进行编译,
如果在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码
make test / make check
顾名思义,这一步就是对上一步 make 的检查了,要确保 make 是没有错误的,也就是这一步的 test、check要全部是 OK 的,error 为0
sudo make install
这条命令来进行安装,它也从Makefile中读取指令,安装到指定的位置,一般需要你有 root 权限(因为要向系统写入文件),所以前面用了 sudo
openssl编译说明:
./config shared zlib
./config shared zlib-dynamic
一个是静态链接,一个是动态库,windows下为dll,linux为啥来着我也忘了。
这个参数的意思是,openssl应该使用哪个方式来获取zlib依赖。如果你全局安装了zlib-devel,那么选择zlib-dynamic即可。
如果你选择zlib,可能需要配置zlib-src搜索,也就是zlib的源码让openssl可以将其静态编译到自己体内。
perl在编绎执行make时中会如下的报错:
make: *** [lib/buildcustomize.pl] 错误 1
make的这个报错必须要这个参数-Dusethreads进行编译才不会有这个报错的,才可正常的执行下面操作继续安装