nginx 升级 tls版本

583 阅读2分钟

0.设置配置的文件夹tool

cd /usr/local/
mkdir tool
cd ./tool

1.升级openssl

https的tls加密的套件

# 查看版本
openssl version

# 下载
webget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

# 编译
tar -xvf openssl-1.1.1g.tar.gz # 解压到 /usr/local/tool/这个通用路径
cd openssl-1.1.1g
./config shared --openssldir=/usr/local/openssl --prefix=/usr/local/openssl
make && make install 

# 配置
echo /usr/local/openssl/lib/ >> /etc/ld.so.conf
ldconfig

# 安装
make && make install

# 配置使用最新版本
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

# 但是这里如果存在了会报错 ln: failed to create symbolic link ‘/usr/bin/openssl’: File exists
# 所以我们使用覆盖命令
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
echo /usr/local/lib64 >> /etc/ld.so.conf
ldconfig -v

# 查看版本
openssl version

#发现报错,openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
# 这是由于库文件地址不正确造成的,使用下面命令进行软连接
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib/
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib/

# 再查看版本
openssl version

2.安装pcre

正则库

tar -zxvf pcre-8.43.tar.gz
cd pcre-8.43
./configure --prefix=/usr/local/pcre/
# 如果提示错误configure: error: Invalid C++ compiler or C++ compiler flags 
# 执行 yum install -y gcc-c++ 安卓c++库

make && make install

3.安装zlib

gzip模块依赖库

tar -zxv -f zlib-1.2.12.tar.gz # 解压到 /usr/local/tool/这个通用路径
cd zlib-1.2.12
./configure --prefix=/usr/local/zlib/
make && make install

4.配置nginx

cd sbin 
./nginx -V #查询版本信息和编译信息

# 进入nginx的安装根目录
./configure  --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --with-http_ssl_module ...........
--with-openssl=/usr/local/nginx/openssl/openssl-1.1.1g --with-pcre=/usr/local/nginx/tool/pcre-8.43 --with-zlib=/usr/local/nginx/tool/zlib-1.2.12

#关键是新增了 
--with-openssl=/usr/local/nginx/tool/openssl-1.1.1g --with-pcre=/usr/local/nginx/tool/pcre-8.43 --with-zlib=/usr/local/nginx/tool/zlib-1.2.12

# 执行生成
make 

# 然后备份原有已安装好的nginx
cp /usr/local/nginx/sbin/nginx  /usr/local/nginx/sbin/nginx.bak

# 然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)
# 先停止nginx
/usr/local/nginx/sbin/nginx -s stop
# 再进行覆盖
cp ./objs/nginx /usr/local/nginx/sbin/
# 然后启动nginx,仍可以通过命令查看是否已经加入成功
/usr/local/nginx/sbin/nginx -V

# 配置信息指向-调整
# 如果无法停止nginx 可能配置指向已经变化,需要重现调整回原来自己配置的路径
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf