Centos7更换OpenSSL版本

Centos7更换OpenSSL版本_第1张图片

  • 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

升级操作

  1. 提前创建好自定义安装路径
    mkdir /usr/local/openssl-1.0.2i
    mkdir /usr/local/ssl-1.0.2i
    
  2. 解压下载好的源码包
    tar -zxf openssl-1.0.2i.tar.gz 
    
  3. 开始编译和安装
    # 进入解压后的源码包目录
    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版本

  1. 查找旧版的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
    
  2. 分析哪些要做软链
    # 经分析,下面这两个是需要通过软链替换的,而且要做好备份
    /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
    
  3. 备份当前openssl
    mv /usr/include/openssl /usr/include/openssl.bak.20220426
    mv /usr/bin/openssl /usr/bin/openssl.bak.20220426
    
  4. 配置软链到新版本
    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
    
  5. 更新动态链接数据并重新加载
    ># echo "/usr/local/openssl-1.0.1u/lib" >> /etc/ld.so.conf
    ># ldconfig -v
    
  6. 最后,查看是否升级成功
    ># 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

Centos7更换OpenSSL版本_第2张图片

图片原文链接


为什么配置这么多,这些配置是从已经安装的nginx复制过来的,配置可通过nginx -V命令查看,可参考下图
Centos7更换OpenSSL版本_第3张图片
图片原文链接

你可能感兴趣的:(Linux,Nginx,linux,服务器,centos)