如今当下有很多公司的网站都是https加密的,不久前我的网站刚刚被沃通检测出有漏洞,https://wosign.ssllabs.com/,这个是检测的网址。这个漏洞会造成什么影响,

大家百度一下漏洞的关键词就好了。

一、漏洞如图:

wKioL1fknwaAZ3VgAAA66RXacdo940.png-wh_50

二、官方给出了修复漏洞的方法,更新openssl版本,如下图:

wKioL1fkn3nB3uenAABNQqjzEUE422.png-wh_50

三、修复漏洞的整体流程:

  1.先更新openssl的版本,在此我的openssl的版本为openssl.0.1t。

  2.重新编译web服务器,将openssl编译到web服务器中,并指定openssl的源码目录,更改nginx.conf配置文件,重启web服务器即可。在此我的web服务器为Tengine。

四、具体修复过程:

  1.更新openssl版本,如下是具体命令,实测过。可以使用

   wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz #下载openssl源码包
   
   tar zxvf openssl-1.0.1t.tar.gz  #解压包
   
   cd openssl-1.0.1t  #进入openssl文件夹
   
   ./config
   
   make && make install  #编译安装
   
   mv /usr/bin/openssl /usr/bin/openssl.bak
   
   mv /usr/include/openssl /usr/include/openssl.bak
   
   ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
   
   ln -s /usr/local/ssl/include/openssl /usr/include/openssl
   
   echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
   
   ldconfig -v
   
   openssl version -a #查看openssl的信息,会有如下的显示
   
   [root@iZ25yczkZ temp]# openssl version -a
   OpenSSL 1.0.1t  3 May 2016
   built on: Tue Sep 20 23:10:08 2016
   platform: linux-x86_64
   options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) 
   compiler: gcc -I. -I.. -I../include  -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O3 -Wall -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_ASM
   OPENSSLDIR: "/usr/local/openssl/ssl"
   
   支持openssl的版本更新就完成了。

  2.编译web服务器,以及更改配置文件

此步骤需要备份,备份命令为: 1.cp /usr/sbin/nginx /usr/sbin/ngxin.bak 2. cp /usr/local/nginx /usr/local/nginx.bak 3.cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak 注:这是我的备份命令,因为每个服务器环境的不通,导致目录会不同,大家可以逐一找到目录,进行备份)。

   

   tar zxvf tengine-1.4.6.tar.gz  #解压tengine-1.4.6.tar.gz包,这个包没有大家可以去官网去下载
   cd tengine-1.4.6
   ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --sbin-path=
   /usr/sbin/nginx --with-http_ssl_module --with-http_realip_module 
   --with-http_addition_module --with-http_p_w_picpath_filter_module --with-http_sub_module 
   --with-http_dav_module --with-http_flv_module --with-http_mp4_module 
   --with-http_gzip_static_module --with-http_concat_module 
   --with-http_random_index_module --with-http_secure_link_module 
   --with-http_degradation_module --with-http_sysguard_module 
   --with-backtrace_module --with-http_stub_status_module 
   --with-http_upstream_check_module --with-google_perftools_module 
   --with-openssl=/d20141212/temp/openssl-1.0.1t  #需要这一句,这个目录是指openssl的源码安装目录。
                                                  #此configure命令使用我的线上环境,,模仿这个去写就可以
                                                  
   make && make install #为什么可以执行make install呢,因为这个之前有好多模块咱们已经./configure里了
                         不怕make install之后模块消失。
   vim /etc/nginx/nginx.conf #更改你的配置文件
   
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
   ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL; #将这两句话添加到nginx.conf中。 
   
   保存之后重新启动web服务器,也就是启动nginx。

 

至此,openssl的漏洞修复完毕。可以使用https://wosign.ssllabs.com/地址进行检测。。

如有疑问可以评论