- OpenSSL 1.1.0 用户应升级至 1.1.0a
- OpenSSL 1.0.2 用户应升级至 1.0.2i
- OpenSSL 1.0.1 用户应升级至 1.0.1u
查看openssl版本
openssl version -v
选择升级版本
我的版本是OpenSSL 1.0.2系列,所以要升级1.0.2i
https://www.openssl.org/source/old/1.0.2/openssl-1.0.2i.tar.gz
升级操作
- 提前创建好自定义安装路径
mkdir /usr/local/openssl-1.0.2i mkdir /usr/local/ssl-1.0.2i
- 解压下载好的源码包
tar -zxf openssl-1.0.2i.tar.gz
- 开始编译和安装
# 进入解压后的源码包目录 cd openssl-1.0.2i # 配置openssl安装目录和openssldir ./config --prefix=/usr/local/openssl-1.0.2i --openssldir=/usr/local/ssl-1.0.2i# 使用2个线程进行同时编译 make -j 2# 安装 make install # 完成安装后,可以查看下里面安装好的东东 ># ls -l /usr/local/openssl-1.0.2i/ total 12 drwx------ 2 root root 4096 Apr 26 17:17 bin drwx------ 3 root root 4096 Apr 26 17:17 include drwx------ 4 root root 4096 Apr 26 17:17 lib># ls -l /usr/local/ssl-1.0.2i/ total 28 drwx------ 2 root root 4096 Apr 26 17:17 certs drwx------ 6 root root 4096 Apr 26 17:17 man drwx------ 2 root root 4096 Apr 26 17:17 misc -rw-r--r-- 1 root root 10835 Apr 26 17:17 openssl.cnf drwx------ 2 root root 4096 Apr 26 17:17 private
软链接到新的openssl版本
- 查找旧版的openssl在哪
># find / -depth -name "openssl" /usr/include/openssl /usr/bin/openssl /usr/lib64/openssl /usr/local/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include-fixed/openssl /opt/test/nginx-1.18.0/auto/lib/openssl /etc/pkiopd/ca-trust/extracted/openssl /home/ops/abc/python/lib/python2.7/site-packages/cryptography/hazmat/bindings/openssl /home/ops/abc/python/lib/python2.7/site-packages/cryptography/hazmat/backends/openssl
- 分析哪些要做软链
# 经分析,下面这两个是需要通过软链替换的,而且要做好备份 /usr/include/openssl /usr/bin/openssl# 经分析,这个目录暂时不动,因为新版的路径下/usr/local/openssl-1.0.1u/ 没有lib64,只有lib,为了预防出现其他不可预知的问题,可先不通过软链的方式替换它 /usr/lib64/openssl# 经分析,以下这些是应用自身的,可暂且不管 /usr/local/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include-fixed/openssl /opt/test/nginx-1.18.0/auto/lib/openssl /etc/pkiopd/ca-trust/extracted/openssl /home/ops/abc/python/lib/python2.7/site-packages/cryptography/hazmat/bindings/openssl /home/ops/abc/python/lib/python2.7/site-packages/cryptography/hazmat/backends/openssl
- 备份当前openssl
mv /usr/include/openssl /usr/include/openssl.bak.20220426 mv /usr/bin/openssl /usr/bin/openssl.bak.20220426
- 配置软链到新版本
ln -s /usr/local/openssl-1.0.2i/include/openssl /usr/include/openssl ln -s /usr/local/openssl-1.0.2i/bin/openssl /usr/bin/openssl
- 更新动态链接数据并重新加载
># echo "/usr/local/openssl-1.0.1u/lib" >> /etc/ld.so.conf ># ldconfig -v
- 最后,查看是否升级成功
># openssl version OpenSSL 1.0.2i 22 Sep 2016
nginx升级openssl版本
重要的意向配置是--with-openssl=/opt/source/openssl-1.0.2i
,指定openssl源码包位置。
./configure --prefix=/opt/nginx --conf-path=/opt/nginx/conf/nginx.conf --error-log-path=/opt/nginx/logs/error.log --http-log-path=/opt/nginx/logs/access.log --http-client-body-temp-path=/opt/nginx/conf/client_body_temp --http-proxy-temp-path=/opt/nginx/conf/proxy_temp --http-fastcgi-temp-path=/opt/nginx/conf/fastcgi_temp --http-uwsgi-temp-path=/opt/nginx/conf/uwsgi_temp --http-scgi-temp-path=/opt/nginx/conf/scgi_temp --with-http_ssl_module --with-openssl=/opt/source/openssl-1.0.2i
图片原文链接
为什么配置这么多,这些配置是从已经安装的nginx复制过来的,配置可通过nginx -V
命令查看,可参考下图
图片原文链接