linux升级OpenSSL

本例子中将OpenSSL 1.0.2k升级到OpenSSL 1.1.1t

1、首先查看openssl的版本以及目录,命令如下:

openssl version -a

/etc/pki/tls目录下就是openssl的配置文件,不过此处升级用不上此目录

2、将openssl-1.1.1t.tar.gz文件上传到服务器上,并解压,如下:

rz -y openssl-1.1.1t.tar.gz
tar xf openssl-1.1.1t.tar.gz

3、进入解压目录下,执行命令编译,如下:

cd openssl-1.1.1t
yum -y install gcc*       #安装依赖
#prefix执行可执行文件安装路径
./config --prefix=/opt/openssl --openssldir=/usr/local/openssl
#编译和安装
make && make install

4、备份原来的openssl文件,可通过whereis openssl查询位置,如下:

mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl /usr/include/openssl.old

5、用新的文件替换旧的文件,执行命令如下:

ln -sf /opt/openssl/bin/openssl   /usr/bin/openssl
ln -s /opt/openssl/include/openssl /usr/include/openssl

6、执行命令查看openssl版本,报错如下:

openssl version

报错:openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory 缺少依赖库,执行如下命令解决:

ln -s /opt/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
ln -s /opt/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1

7、查看openssl链接库位置,命令如下:

ldconfig -p | grep ssl

8、将新的库文件添加到so库的配置文件,更新动态链接库数据,如下:

echo "/lib64" >> /etc/ld.so.conf

9、再次查看openssl版本,如下:

至此,升级完成!!

生成自签名证书命令:

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /tmp/server.key -out /tmp/server.crt -subj "/C=CN/ST=Beijing/L=Beijing/O=MyCompany/CN=www.registry.com"

说明:证书有效期为10年,生成位置在/tmp下,指定域名为www.registry.com,将此证书配置到nginx中即可,自签名证书浏览器不认,可用于内部用,比如docker registry仓库

标签