修复OpenSSL漏洞 升级OpenSSL版本 nginx静态编译ssl模块

背景

   OpenSSL全称为Secure Socket Layer,是Netscape所研发,利用数据加密(Encryption)作技术保障在Internet上数据传输的安全。可确保数据在网络上的传输不会被窃听及截取。

    当然,OpenSSL是一个强大的密码库,我们在使用SSL协议的时候不一定非得采用OpenSSL,不过目前基本上都是用的OpenSSL,因为它更安全,使用起来也更简单。

通常出现的OpenSSL的漏洞需要升级版本解决

查看openssl版本

openssl version 

进入存放源码包位置

cd /usr/local/scr  

下载最新版openssl 源码包 下载openssl地址

https://www.openssl.org/source/

解压

tar  zxf    openssl-1.1.0h.tar.gz

编译

./config  --prefix=/usr/local/openssl-1.1.0h/ssl
make  && make install

将新编译的openssl替换系统老版本的

mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/openssl-1.1.0h/ssl/bin/openssl   /usr/bin/openssl
ln -s /usr/local/openssl-1.1.0h/ssl/include/openssl   /usr/include/openssl

配置文件搜索路径

echo "/usr/local/ssl/lib/" >> /etc/ld.so.conf
 ldconfig -v |grep openssl  

查看安装完成后的最新版本

 openssl version
 openssl version -a

以上openssl 安装更新完成

########

nginx静态编译ssl模块

nginx用户:
如果您是使用动态编译ssl模块的方式,需保证nginx链接的是升级后的libssl.so
如果您是使用静态编译ssl模块的方式,需重新编译nginx,--with-openssl参数指向新的openssl源码目录

识别nginx是否为静态编译https://blog.csdn.net/hujkay/article/details/23476557

我的nginx为静态编译的

进入nginx解压包的源码包路径

cd /usr/local/scr/nginx-1.10.2

进入nginx源码目录 重新编译。

./configure  --prefix=/usr/local/nginx --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-http_ssl_module --with-openssl=/usr/local/openssl-1.1.0h/ssl
注释:
编译参数需要拷贝原来参数
查看nginx编译的参数
/usr/local/nginx/sbin/nginx -V
参数解析 --with-http_ssl_module --with-openssl=/usr/local/openssl-1.1.0h/ssl
【--with-http_ssl_module 使得nginx支持ssl模块  --with-openssl指定安装目录,通常两个都加上】

编译

make   【生成最新二进制文件】
这里可以不make install  ,避免把原来的nginx其他配置覆盖了
编译时可能出现的报错
/usr/local/openssl//.openssl/include/openssl/ssl.h] Error 127
解决方案:
https://www.cnblogs.com/huanhang/p/7580843.html

修改后

需要把最新nginx二进制文件拷贝到安装目录的sbin

@需要的可以备份好原来的二进制文件
cp  /usr/local/src/nginx-1.10.2/objs    /usr/local/nginx/sbin/nginx

验证nginx配置文件是否正确

/usr/local/nginx/sbin/nginx -t

重启nginx服务

/usr/local/nginx/sbin/nginx -s stop
 启动代码格式:nginx安装目录地址 -c nginx配置文件地址
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

原文地址:http://blog.51cto.com/zhanjun/2097178

时间: 2024-10-08 01:35:13

修复OpenSSL漏洞 升级OpenSSL版本 nginx静态编译ssl模块的相关文章

nginx添加编译lua模块

一 .安装LuaJit 1.下载LuaJit # wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz 2.编译安装 # tar xzvf LuaJIT-2.0.5.tar.gz # cd LuaJIT-2.0.5 # make PREFIX=/opt/programs/nginx_1.12.2/lua/luajit # make install PREFIX=/opt/programs/nginx_1.12.2/lua/luajit 二.下载

Nginx重新编译添加模块

找到安装nginx的源码根目录,如果没有的话下载新的源码 http://nginx.org tar xvzf nginx-1.3.2.tar.gz 查看ngixn版本极其编译参数 /usr/local/nginx/sbin/nginx -V 进入nginx源码目录 cd nginx-1.3.2 以下是重新编译的代码和模块 ./configure --prefix=/usr/local/nginx--with-http_stub_status_module --with-http_ssl_modu

升级openssl

openssl漏洞:OpenSSL 的 Heartbleed 漏洞(又称openssl心脏出血) openssl漏洞是2014年4月8日曝出严重的安全漏洞.这个漏洞使攻击者能够从内存中读取多达64 KB的数据. 目前官方说受威胁的版本是1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1 不存在漏洞的版本是OpenSSL 1.0.1g,OpenSSL 1.0.1h 危害:此漏洞会造成严重的memory dump,因为与所有OpenSSL数据共

Nginx 下配置SSL证书的方法

1.Nginx 配置 ssl 模块 默认 Nginx 是没有 ssl 模块的,而我的 VPS 默认装的是 Nginx 0.7.63 ,顺带把 Nginx 升级到 0.7.64 并且 配置 ssl 模块方法如下: 下载 Nginx 0.7.64 版本,解压 进入解压目录: 复制代码代码如下: wget http://sysoev.ru/nginx/nginx-0.7.64.tar.gz tar zxvf nginx-0.7.64.tar.gz cd nginx-0.7.64 如果要更改header

Nginx服务的ssl认证和htpasswd认证

默认Nginx是没有ssl模块的,需要在编译安装的时候添加上ssl模块! 首先是需要安装Nginx服务,这里我们不做详细介绍,具体安装可以参考我的"Nginx介绍及安装配置". 使用Openssl生成证书 1.生成RSA密钥的方法 [[email protected] conf]# openssl genrsa -des3 -out kell.key 1024 Generating RSA private key, 1024 bit long modulus .++++++ ..+++

apache 静态编译和动态编译参考

apache-2.2.22 编译安装笔记 一.静态编译     在使用./configure 编译的时候,即没有使用--enable-mods-shared=[module]或者--enable-[module]=shared这2个中的一个,那么所有的默认模块为静态.何谓静态? 其实就是编译的时候所有的模块自己编译进httpd 这个文件中,启动的时候这些模块就已经加载进来了,也就是可以使用了,通常:<ifmodule> </ifmodule> 来配置.所以大家看到的配置都是<

重新编译Nginx指导手册【修复静态编译Openssl的Nginx漏洞 】(转)

1. 概述    当前爆出了Openssl漏洞,会泄露隐私信息,涉及的机器较多,环境迥异,导致修复方案都有所不同.不少服务器使用的Nginx,是静态编译opensssl,直接将openssl编译到nginx里面去了,这就意味着,单纯升级openssl是没有任何效果,Nginx不会加载外部的openssl动态链接库的,必须将nginx重新编译才可以根治. 2. 识别Nginx是否是静态编译的 以下三种方法都可以确认Nginx是否静态编译Openssl. 2.1 查看Nginx编译参数 输入以下指令

nginx 源码安装openssl修复Heartbleed漏洞

如果你的nginx使用的是动态的openssl库,直接升级openssl,如果你的nginx使用的是静态的openssl库,那就要重新编译安装nginx. PHP编译修复 1. nginx使用的是动态的openssl库,直接升级openssl    1.1 源码安装openssl1.0.1g版本        先下载openssl 1.0.1g版本,命令如下:            #wget  -c    https://www.openssl.org/source/openssl-1.0.1

nginx之升级openssl及自定义nginx版本

favicon.ico浏览器图标配置 favicon.ico 文件是浏览器收藏网址时显示的图标,当客户端使用浏览器问页面时,浏览器会自己主动发起请求获取页面的favicon.ico文件,但是当浏览器请求的favicon.ico文件不存在时,服务器会记录404日志,而且浏览器也会显示404报错. location = /favicon.ico { #使用完全匹配,优先级最高 root /data/nginx/pc/images; #设计好的favicon.ico文件需要在这个指定好的目录下 } 自