针对OpenSSL安全漏洞调整Nginx服务器的方法
1. 概述
当前爆出了Openssl漏洞,会泄露隐私信息,涉及的机器较多,环境迥异,导致修复方案都有所不同。不少服务器使用的Nginx,是静态编译 opensssl,直接将openssl编译到nginx里面去了,这就意味着,单纯升级openssl是没有任何效果,Nginx不会加载外部的 openssl动态链接库的,必须将nginx重新编译才可以根治。
2. 识别Nginx是否是静态编译的
以下三种方法都可以确认Nginx是否静态编译Openssl。
2.1 查看Nginx编译参数
输入以下指令,查看Nginx的编译参数:
# ./sbin/nginx -V
如果编译参数中含有--with-openssl=...,则表明Nginx是静态编译Openssl,如下所示:
nginx version: nginx/1.4.1 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) TLS SNI support enabled configure arguments: --prefix=/opt/app/nginx --with-http_ssl_module --with-openssl=/opt/app/openssl-1.0.1e --add-module=/opt/app/ngx_cache_purge-2.1
2.2 查看Nginx的依赖库
为进一步确认,可以查看一下程序的依赖库,输入以下指令:
# ldd `which nginx` | grep ssl
显示
libssl.so.10 => /usr/lib/libssl.so.10 (0xb76c6000)
注意:如果输出中不包含libssl.so的文件(),就说明是静态编译的Openssl的
再输入命令以确定openssl以确定库所属的openssl版本,但是不会太详细,比如本应该是1.0.1e.5.7,但是却只输出1.0.1e:
# strings /usr/lib/libssl.so.10 | grep "^OpenSSL " OpenSSL 1.0.1e-fips 11 Feb 2013
2.3 查看Nginx打开的文件
也可以通过查看Nginx打开的文件来查看是否静态编译,输入以下指令:
# ps aux | grep nginx # lsof -p 111111<这里换成Nginx的进程PID> | grep ssl
如果没有打开Openssl的库文件,就说明是静态编译Openssl的,如下图所:
3. 重新编译Nginx
在互联网公司里,很少有统一的Nginx版本,都是各部门根据自己的业务需求选择相应的插件,然后自己编译的,所以在编译的时候一定要注意插件这块,不 要忘记编译某些插件,尽量保持Nginx特性不变,下面的方法可以给大家参考一下,但是一定要经过测试才可以上线啊。
相关推荐
-
Nginx服务器的SSL证书配置以及对SSL的反向代理配置
Nginx的SSL证书配置 1.使用openssl实现证书中心 由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书.服务端证书.客户端证书中都相同 Country Name State or Province Name Locality Name Organization Name Organizational Unit Name Country Name State or Province Name Locality Name Organization Name Or
-
Nginx+SSL+Node.js运行环境配置教程
Nginx是一款高性能的HTTP服务器,同时也是一款高效的反向代理服务器.不像传统的服务器,Nginx是基于事件驱动的异步架构,内存占用少但是性能很好.如果你的Web应用是基于Node.js的,那么建议你考虑使用Nginx来做反向代理,因为Nginx可以非常高效地提供静态文件服务.本文的主要内容是在不同的操作系统下配置Nginx和SSL,并且搭建一个Node.js运行环境. 安装Nginx 假设你已经在服务器上安装了Node.js,下面我们来安装Nginx. 在Mac系统上安装Nginx 利用c
-
在Nginx服务器中启用SSL的配置方法
生成证书 可以通过以下步骤生成一个简单的证书: 首先,进入你想创建证书和私钥的目录,例如: $ cd /usr/local/nginx/conf 创建服务器私钥,命令会让你输入一个口令: $ openssl genrsa -des3 -out server.key 1024 创建签名请求的证书(CSR): $ openssl req -new -key server.key -out server.csr 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令: $ cp server.ke
-
对Nginx支持SSL的性能进行优化的方法
这篇文章是讲web服务器方面的性能调整. 不包括数据库性能的调整. 初始化服务器 这个web服务器运行在一个EC2 t1.micro 环境.我选择 Nginx + PHP5-FPM 来运行php页面,出于安全考虑我使用SSL. 测试性能 我使用Blitz.io来进行压力和性能测试. 下面的是我压力测试的命令. 功能是在60秒内逐渐增加用户. 在整个过程中,Blitz.io 每秒创建一个请求并增加4个用户(rise/run = 260/60). 复制代码 代码如下: -p 1-250:60 htt
-
Nginx服务器中关于SSL的安全配置详解
本文向你们展示如何在nginx的web服务器上设置更强的SSL.我们是通过使SSL无效来减弱CRIME攻击的这种方法实现.不使用在协议中易受攻击的SSLv3以及以下版本并且我们会设置一个更强的密码套件为了在可能的情况下能够实现Forward Secrecy,同时我们还启用HSTS和HPKP.这样我们就有了一个更强.不过时的SSL配置并且我们在Qually Labs SSL 测试中得到了A等级. 我们在nginx的设置文档中如下编辑 复制代码 代码如下: /etc/nginx/sited-enab
-
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 如果要更改heade
-
nginx ssl免密码重启教程详解
一.nginx如何启动 1.HTTP和HTTPS的区别 https协议需要到ca申请证书,一般免费证书很少,需要交费. http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输.身份认证的网络协议,比http协议安全. 所以在涉及到账户.金钱等敏感信息交互的时候使用HTTPS是
-
nginx配置ssl双向验证的方法
1.安装nginx略 http://www.jb51.net/article/49479.htm 2.使用openssl实现证书中心 由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书.服务端证书.客户端证书中都相同 Country Name State or Province Name Locality Name Organization Name Organizational Unit Name 编辑证书中心配置文件 vim /etc/pki/tls/openssl
-
针对OpenSSL安全漏洞调整Nginx服务器的方法
1. 概述 当前爆出了Openssl漏洞,会泄露隐私信息,涉及的机器较多,环境迥异,导致修复方案都有所不同.不少服务器使用的Nginx,是静态编译 opensssl,直接将openssl编译到nginx里面去了,这就意味着,单纯升级openssl是没有任何效果,Nginx不会加载外部的 openssl动态链接库的,必须将nginx重新编译才可以根治. 2. 识别Nginx是否是静态编译的 以下三种方法都可以确认Nginx是否静态编译Openssl. 2.1 查看Nginx编译参数
-
CentOS6.5系统简单安装与配置Nginx服务器的方法
本文实例讲述了CentOS6.5系统简单安装与配置Nginx服务器的方法.分享给大家供大家参考,具体如下: 依赖包安装 在安装nginx前,需要确保系统安装了g++.gcc.openssl-devel.pcre-devel和zlib-devel软件.安装必须软件: [root@admin /]#yum install gcc-c++ yum -y install zlib zlib-devel openssl openssl--devel pcrepcre-devel 检查系统安装的Nginx:
-
Vue-cli项目部署到Nginx服务器的方法
0. Nginx使用 以windows版为例,下载niginx压缩包并解压到任意目录,双击nginx.exe,在浏览器中访问http://localhost,如果出现Welcome to nginx!页面则说明成功. nginx常用命令如下: nginx -h # 打开帮助 nginx -t # 检查配置文件是否正确 # 以下命令均要先启动nginx才能执行 nginx -s stop # 停止 nginx -s quit # 退出 nginx -s reopen # 重新启动(注意不会重新读取
-
Docker创建一个Nginx服务器的方法步骤
运行环境: MAC Docker 版本: Docker version 17.12.0-ce, build c97c6d6 一.启动Nginx 服务器 启动Nginx 服务器,并进入模拟终端 docker run -p 8080:80 --name nginx_web -it nginx /bin/bash 二.了解Nginx 镜像的配置文件位置 日志文件位置:/var/log/nginx 配置文件位置: /etc/nginx 资源存放的位置: /usr/share/nginx/html 上面的
-
CentOS6.5环境安装nginx服务器及负载均衡配置操作详解
本文实例讲述了CentOS6.5环境安装nginx服务器及负载均衡配置操作.分享给大家供大家参考,具体如下: 1.下载PCRE, 是一个用C语言编写的正则表达式函数库 [root@localhost pcre-8.36]# cd /tmp/download/ [root@localhost download]# wget http://nchc.dl.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz [root@localhost d
-
CentOS平台实现搭建rsync远程同步服务器的方法
本文实例讲述了CentOS平台实现搭建rsync远程同步服务器的方法.分享给大家供大家参考,具体如下: rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 rsync 同步本地硬盘中的不同目录. rsync和scp的区别: rsync支持增量同步,不管是文件数量的新增还是文件内容的新增,scp不行 注意事项: 1.centos默认已经安装rsync了,输入命令rsync查看,如果无法正常工作可参考文章最后的链接进行操
-
修改nginx服务器类型实现简单伪装(隐藏nginx类型与版本等)
修改服务器类型为了防止被有所图的人利用,才做的一些调整.比如当前使用的一个低版本正好被爆出漏洞,如果被发现,那岂不是危险. 1.隐藏版本号,修改nginx.conf,在http区块加入 复制代码 代码如下: server_tokens off; 然后重新加载nginx,可以看到server头部也是不带版本号,也可以通过404查看 2.返回自定义服务器类型 通过curl -i http://127.0.0.1 查看当前的类型或者一些站长工具都可以看到,可以修改一为gws或者GFW来威慑一些利用工具
-
Nginx服务器高性能优化的配置方法小结
通常来说,一个优化良好的 Nginx Linux 服务器可以达到 500,000 – 600,000 次/秒 的请求处理性能,然而我的 Nginx 服务器可以稳定地达到 904,000 次/秒 的处理性能,并且我以此高负载测试超过 12 小时,服务器工作稳定. 这里需要特别说明的是,本文中所有列出来的配置都是在我的测试环境验证的,而你需要根据你服务器的情况进行配置: 从 EPEL 源安装 Nginx: yum -y install nginx 备份配置文件,然后根据你的需要进行配置: cp /e
-
Nginx服务器基础的安全配置与一些安全使用提示
安全配置 1. nginx介绍 nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端.nginx一般是把请求发fastcgi管理进程处理,fastcgi管理进程选择cgi子进程处理结果并返回被nginx. nginx涉及到两个账户,一个是nginx的运行账户,一个是php-fpm的运行账户.如果访问的是一个静态文件,则只需要nginx的运行账户对文件具有读取权限:而如果访问的是一个php文件,则首先需要nginx的运行
随机推荐
- javascript中setTimeout的问题解决方法
- ubuntu下linux常用指令小结
- Java并发编程之重入锁与读写锁
- javascript操作cookie_获取与修改代码
- ASP.NET程序发布详细过程
- PHP获取远程图片并保存到本地的方法
- Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码
- Js基础学习资料
- javascript如何操作HTML下拉列表标签
- 深入理解JavaScript系列(28):设计模式之工厂模式详解
- asp生成不需要数据库的中奖码
- php cookie 登录验证示例代码
- MySQL优化之分区表
- sqlserver中求字符串中汉字的个数的sql语句
- jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
- jQuery的显示和隐藏方法与css隐藏的样式对比
- 使用CSS3的scale实现网页整体缩放
- Java中位运算(移位、位与、或、异或、非) 的简单实例
- Java8接口的默认方法
- php日历制作代码分享