CentOS 升级 openssl
1. 安装依赖环境:
yum install pcre-devel zlib unzip git
2. 查看当前 OpenSSL 版本
openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
3. 下载 OpenSSL 的最新版
去官网 https://www.openssl.org/source/ 选择最新的就可以。我这边现在是 1.1.0c。
wget https://www.openssl.org/source/openssl-1.1.0c.tar.gz
tar -zxvf openssl-1.1.0c.tar.gz
4. 编译安装
./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamic make depend make && make install
我这里在编译安装的时候出现了一个问题
make depend && make _all
make[1]: Entering directory `/root/openssl-1.1.0c' make[1]: Leaving directory `/root/openssl-1.1.0c'
make[1]: Entering directory `/root/openssl-1.1.0c' gcc -I. -Icrypto/include -Iinclude -DZLIB -DZLIB_SHARED -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/etc/ssl\"" -DENGINESDIR="\"/usr/lib/engines-1.1\"" -Wall -O3 -pthread -m64 -DL_ENDIAN -Wa,--noexecstack -fPIC -DOPENSSL_USE_NODELETE -MMD -MF crypto/asn1/a_bitstr.d.tmp -MT crypto/asn1/a_bitstr.o -c -o crypto/asn1/a_bitstr.o crypto/asn1/a_bitstr.c /tmp/ccalSfWL.s: Assembler messages: /tmp/ccalSfWL.s:518: Error: expecting string instruction after `rep'
/tmp/ccalSfWL.s:557: Error: expecting string instruction after `rep' make[1]: *** [crypto/asn1/a_bitstr.o] Error 1 make[1]: Leaving directory `/root/openssl-1.1.0c'
make: *** [all] Error 2
出现这个问题的原因是因为我在之前把 gcc 升级到了 4.8.2,随之而来的就是这个 问题
解决方法如下:
wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
yum install devtoolset-2-gcc devtoolset-2-binutils
yum install devtoolset-2-gcc-gfortran
5. 拷贝 so 库到指定位置
cp /usr/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
cp /usr/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
6. 查看 OpenSSL 最新版本
openssl version
OpenSSL 1.1.0c 10 Nov 2016
完成。