Linux下OpenSSL升级(1.0.2 -> 1.1.1)并重新编译Nginx

Linux下OpenSSL升级(1.0.2 -> 1.1.1)

  1. 查看当前OpenSSL版本
  openssl version
  1. 下载并安装1.1.1版本的OpenSSL
//下载并解压 
  cd /usr/local/
  wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
  tar zxvf openssl-1.1.1w.tar.gz
  cd ./openssl-1.1.1w/

//预编译到指定安装路径,生成Makefile文件,
//-t参数可测试编译情况,–prefix:指定安装目录;
配置config 说明:
//–openssldir:指定openssl配置文件路径;
//--prefix:指定安装目录
//--openssldir:指定配置文件目录
//shared:作用是生成动态连接库
  ./config --prefix=/opt/openssl --openssldir=/usr/local/openssl

//编译,如果编译失败,可执行 make clean 或者编译前用 make test 测试编译情况而不直接编译
  make
  
//编译成功后安装
  make install 

(注意:编译失败可能需要更新zlib、gcc 可能会出现 缺少openssl开发依赖包)

yum -y install gcc pam-devel zlib-devel openssl-devel net-tools
  1. 变更系统PATH路径
  vim /etc/profile
//在打开的文件的最后一行添加
  export PATH="/opt/openssl/bin:$PATH"
//然后按Esc,输入:wq 使文件保存并退出
//是新配置的环境变量生效
  source /etc/profile
  1. 配置新的资源库路径
# 检查openssl-1.1.1w所需要的函数库
ldd /opt/openssl/bin/openssl
# 添加openssl-1.1.1w的库文件路径到ld.so.conf
echo "/opt/openssl/lib" >> /etc/ld.so.conf
# 如果有显示个别 not found,查找库的实际路径(例如在 /usr/lib64/ 或自定义目录)
sudo find / -name "libssl.so.1.1" -o -name "libcrypto.so.1.1"
# 根据上一步找到的路径,将库路径添加到系统配置(假设库在 /opt/openssl/lib/)
echo "/opt/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
# 没有not found后,更新系统函数库库 
ldconfig
# 绝对路径查看openssl版本
ldd /opt/openssl/bin/openssl
# 查看旧版本的openssl命令路径
which openssl
# 重命名为openssl.old
mv /usr/local/openssl /usr/local/openssl.old   #重命名openssl文件
# 使用软连接的方式更新openssl命令
ln -s /opt/openssl/bin/openssl /usr/local/openssl
# openssl命令查看版本呢
openssl version

5.重新编译Nginx(TLS1.3需要1.15以上版本)

./configure --prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-openssl=/opt/openssl

执行make后如果报错修改配置文件
如果在执行make后报错,修改nginx源码目录中auto/lib/openssl/conf中的openssl路径参数,在40行左右的位置对应四个参数中的.openssl去掉,修改后的内容如下:

  39             CORE_INCS="$CORE_INCS $OPENSSL/include"
  40             CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
  41             CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"
  42             CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"

修改完成后重新编译安装(执行make clean,再重新执行configure操作)

#Nginx 配置文件中将ssl做如下修改即可
ssl_protocols TLSv1.2 TLSv1.3;
#进入指定目录
cd /usr/local/nginx/sbin/
#检查nginx配置文件是否正确
./nginx -t
#启动nginx
./nginx
#停止nginx
./nginx -s stop
#重启nginx
./nginx -s reload
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值