openssl版本升级操作记录【转】
需要部署nginx的https环境,之前是yum安装的openssl,版本比较低,如下:
[root@nginx ~]# yum install -y pcre pcre-devel openssl openssl-devel gcc[root@nginx ~]# openssl version -aOpenSSL 1.0.1e-fips 11 Feb 2013built on: Wed Mar 22 21:43:28 UTC 2017platform: linux-x86_64options: bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASMOPENSSLDIR: "/etc/pki/tls"engines: rdrand dynamic |
默认yum安装的openssl版本是1.0.1,现在需要将版本升级到1.1.0。升级的操作记录如下:
[root@nginx ~]# wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz[root@nginx ~]# tar -zvxf openssl-1.1.0g.tar.gz[root@nginx ~]# cd openssl-1.1.0g[root@nginx openssl-1.1.0g]# ./config shared zlib[root@nginx openssl-1.1.0g]# make[root@nginx openssl-1.1.0g]# make install[root@nginx openssl-1.1.0g]# mv /usr/bin/openssl /usr/bin/openssl.bak[root@nginx openssl-1.1.0g]# mv /usr/include/openssl /usr/include/openssl.bak[root@nginx openssl-1.1.0g]# find / -name openssl/etc/pki/ca-trust/extracted/openssl/data/software/nginx-1.12.2/auto/lib/openssl/data/software/openssl-1.1.0g/apps/openssl/data/software/openssl-1.1.0g/include/openssl/usr/lib64/openssl/usr/local/share/doc/openssl/usr/local/include/openssl/usr/local/bin/openssl/usr/include/openssl/usr/bin/openssl[root@nginx openssl-1.1.0g]# ln -s /usr/local/bin/openssl /usr/bin/openssl[root@nginx openssl-1.1.0g]# ln -s /usr/local/include/openssl /usr/include/openssl[root@external-lb01 ~]# find / -name "libssl*"/data/software/openssl-1.1.0g/libssl.pc/data/software/openssl-1.1.0g/libssl.so/data/software/openssl-1.1.0g/libssl.a/data/software/openssl-1.1.0g/libssl.so.1.1/data/software/openssl-1.1.0g/util/libssl.num/usr/lib64/libssl3.so/usr/lib64/pkgconfig/libssl.pc/usr/lib64/libssl.so.1.0.1e/usr/lib64/libssl.so/usr/lib64/libssl.so.10/usr/local/lib64/libssl.a/usr/local/lib64/pkgconfig/libssl.pc/usr/local/lib64/libssl.so/usr/local/lib64/libssl.so.1.1[root@nginx openssl-1.1.0g]# echo "/usr/local/lib64/" >> /etc/ld.so.conf[root@nginx openssl-1.1.0g]# ldconfig[root@nginx openssl-1.1.0g]# openssl version -aOpenSSL 1.1.0g 2 Nov 2017built on: reproducible build, date unspecifiedplatform: linux-x86_64compiler: gcc -DZLIB -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/local/ssl\"" -DENGINESDIR="\"/usr/local/lib64/engines-1.1\"" -Wa,--noexecstackOPENSSLDIR: "/usr/local/ssl"ENGINESDIR: "/usr/local/lib64/engines-1.1" |
=========openssl升级后编译nginx出现的问题========
如上将本机的openssl升级后,由于之前编译的nginx里没有stream模块,现在需要手动平滑添加stream模块,操作如下:
检查下,发现nginx没有安装stream模块[root@external-lb01 ~]# /data/nginx/sbin/nginx -Vnginx version: nginx/1.12.2built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) built with OpenSSL 1.1.0g 2 Nov 2017TLS SNI support enabledconfigure arguments: --prefix=/data/nginx --user=www操作之前,一定要备份一下之前的nginx安装目录,防止操作失败进行回滚![root@external-lb01 ~]# cp -r /data/nginx /mnt/nginx.bak之前的编译命令是:[root@external-lb01 vhosts]# cd /data/software/nginx-1.12.2[root@external-lb01 nginx-1.12.2]#现在需要手动添加stream,编译命令如下:[root@external-lb01 vhosts]# cd /data/software/nginx-1.12.2[root@external-lb01 nginx-1.12.2]#报错如下:......./configure: error: SSL modules require the OpenSSL library.You can either do not enable the modules, or install the OpenSSL libraryinto the system, or build the OpenSSL library statically from the sourcewith nginx by using --with-openssl=<path> option.原因分析:是由于openssl升级所致![root@external-lb01 nginx-1.12.2]# openssl version -aOpenSSL 1.1.0g 2 Nov 2017built on: reproducible build, date unspecifiedplatform: distcompiler: cc -DNDEBUG -DOPENSSL_NO_DYNAMIC_ENGINE -DOPENSSLDIR="\"/usr/local/ssl\"" -DENGINESDIR="\"/usr/local/lib/engines-1.1\""OPENSSLDIR: "/usr/local/ssl"ENGINESDIR: "/usr/local/lib/engines-1.1所以编译命令需要改为:[root@external-lb01 nginx-1.12.2]#然后进行make,千万注意!!!!一定不要make install!!!否则会自动覆盖掉之前的配置!!![root@external-lb01 nginx-1.12.2]# make 又报错如下:.......make[1]: *** [/usr/local/ssl/.openssl/include/openssl/ssl.h] Error 127make[1]: Leaving directory `/usr/local/src/nginx-1.9.9'make: *** [build] Error 2解决办法:[root@external-lb01 nginx-1.12.2]# cd auto/lib/openssl[root@external-lb01 openssl]# cp conf /mnt/[root@external-lb01 openssl]# vim nginx将 CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include" CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h" CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a" CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a" CORE_LIBS="$CORE_LIBS $NGX_LIBDL"修改为 CORE_INCS="$CORE_INCS $OPENSSL/include" CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h" CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a" CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a" CORE_LIBS="$CORE_LIBS $NGX_LIBDL"接着继续make安装[root@external-lb01 nginx-1.12.2]# make 又报错说找不到下面两个文件/usr/local/ssl/lib/libssl.a/usr/local/ssl/lib/libcrypto.a解决办法:[root@external-lb01 nginx-1.12.2]# mkdir /usr/local/ssl/lib[root@external-lb01 nginx-1.12.2]# ln -s /usr/local/lib64/libssl.a /usr/local/ssl/lib/libssl.a[root@external-lb01 nginx-1.12.2]# ln -s /usr/local/lib64/libcrypto.a /usr/local/ssl/lib/libcrypto.a然后make就可以了[root@external-lb01 nginx-1.12.2]# make最后进行平滑操作[root@external-lb01 nginx-1.12.2]# cp -f /data/software/nginx-1.12.2/objs/nginx /data/nginx/sbin/nginx[root@external-lb01 nginx-1.12.2]# pkill -9 nginx[root@external-lb01 nginx-1.12.2]# /data/nginx/sbin/nginx检查下,发现nginx已经安装了stream模块了[root@external-lb01 nginx-1.12.2]# /data/nginx/sbin/nginx -Vnginx version: nginx/1.12.2built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) built with OpenSSL 1.1.0g 2 Nov 2017TLS SNI support enabledconfigure arguments: --prefix=/data/nginx --user=www/usr/local/ssl |
openssl版本升级操作记录【转】的更多相关文章
- openssl版本升级操作记录
需要部署nginx的https环境,之前是yum安装的openssl,版本比较低,如下: [root@nginx ~]# yum install -y pcre pcre-devel openssl ...
- CentOS6.9下升级默认的OpenSSH操作记录(升级到OpenSSH_7.6p1)
近期对IDC机房服务器做了一次安全漏洞扫描,漏扫结果显示服务器的OpenSSH版本太低(CentOS6默认是OpenSSH_5.3p1),存在漏洞隐患,安全部门建议升级到OpenSSH_7.6p1.升 ...
- nginx缓存配置的操作记录梳理
web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...
- centos下升级git版本的操作记录
在使用git pull.git push.git clone的时候,或者在使用jenkins发版的时候,可能会报类似如下的错误: error: The requested URL returned e ...
- linux下用户操作记录审计环境的部署记录
通常,我们运维管理人员需要知道一台服务器上有哪些用户登录过,在服务器上执行了哪些命令,干了哪些事情,这就要求记录服务器上所用登录用户的操作信息,这对于安全维护来说很有必要.废话不多说了,下面直接记录做 ...
- squid代理http和https方式上网的操作记录
需求说明:公司IDC机房有一台服务器A,只有内网环境:192.168.1.150现在需要让这台服务器能对外访问,能正常访问http和https请求(即80端口和443端口)操作思路:在IDC机房里另找 ...
- centos6下升级git版本的操作记录
编译go_ethereum的时候出现了错误 然后发现是自己的git没有升级成功 因为编译需要高版本的git版本 所以会编译不成功 之后执行 root@uatjenkins01 ~]# git - ...
- openssl 升级 操作 -1
好多公司都会用绿盟扫描系统漏洞,里边就会涉及到ssl 漏洞,原因是openssl 版本低导致,会让你升级到指定版本.下面就介绍一下openssl 版本升级的操作方案. 一. 查看系统版本 [root@ ...
- 转:centos下升级git版本的操作记录
https://www.cnblogs.com/kevingrace/p/8252517.html 在使用git pull.git push.git clone的时候,或者在使用jenkins发版的时 ...
随机推荐
- 洛谷 P2058 海港 解题报告
P2058 海港 题目描述 小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客. 小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况: ...
- 洛谷P3195 玩具装箱TOY
题目大意: 有n个数,要将他们分成若干段,每一段的cost定义为: cost=r-l+ΣCk (k∈[r,l]) 该段的最终花费是:(cost-L)^2; 给出L,n,C(1~n),总共的最小花费. ...
- 一次完整的 HTTP 请求过程
一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端, ...
- idea js改来改去无效问题的解决
不是idea的问题,问题在Chrome上,设置:
- 洛谷【P1523】旅行商的背包(算法导论 15-1) 题解
P1523 旅行商简化版 题目背景 欧几里德旅行商\((Euclidean Traveling Salesman)\)问题也就是货郎担问题一直是困扰全世界数学家.计算机学家的著名问题.现有的算法都没有 ...
- 黑客专用操作系统——Kali Linux简介
1如果您之前使用过或者了解BackTrack系列Linux的话,那么我只需要简单的说,Kali是BackTrack的升级换代产品,从Kali开始,BackTrack将成为历史. 如果您没接触过Back ...
- vue2.0 之文本渲染-v-html、v-text
vue2.0 之文本渲染-v-html.v-text 1.index.html代码 <!DOCTYPE html> <html> <head> <meta c ...
- Hbase记录-HBase扫描/计数/权限
HBase扫描 scan 命令用于查看HTable数据.使用 scan 命令可以得到表中的数据.它的语法如下: scan ‘<table name>’ 下面的示例演示了如何使用scan ...
- JAVA单链表的实现-不带头结点且没有尾指针
本程序采用JAVA语言实现了线性表的链式实现.首先定义了线性表的接口ListInterface,然后LList类实现了ListInterface完成了链表的实现. 本实现中,链表是不带表头结点的,且有 ...
- HTML中 等6种空白空格的区别
HTML提供了5种空格实体(space entity),它们拥有不同的宽度,非断行空格( )是常规空格的宽度,可运行于所有主流浏览器.其他几种空格( )在不同浏览器中宽度各异. 它 ...