Nginx的前向保密(CentOS6)

前端之家收集整理的这篇文章主要介绍了Nginx的前向保密(CentOS6)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试使用Nginx webserver在CentOS中启用前向保密.

我试过的
我已经阅读了一些教程,看起来我们应该有Nginx,openssl最新版本来启用它.所以我从源代码安装了最新的openssl.

sudo wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
sudo tar  -xvzf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
sudo ./config --prefix=/usr/local
sudo make 
sudo make install

现在OpenSSL支持Eliptic Curve密码(ECDHE).我用openssl s_server测试了这个.它运作良好.

接下来,我用最新的替换了Nginx.

sudo wget  http://Nginx.org/packages/centos/6/x86_64/RPMS/Nginx-1.4.2-1.el6.ngx.x86_64.rpm
sudo rpm -e Nginx
sudo rpm -ivh  Nginx-1.4.2-1.el6.ngx.x86_64.rpm

并配置Nginx,如此链接中所述

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+RC4:EDH+aRSA:EECDH:RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;

http://baudehlo.wordpress.com/2013/06/24/setting-up-perfect-forward-secrecy-for-nginx-or-stud/

但现在Nginx不支持ECDHE密码.它支持DHE密码.我尝试在Nginx中启用ECDHE密码仍然无法正常工作.我正在使用最新的网络浏览器(chrome 29并支持此密码)

我错过了什么吗?或者与CentOS或Nginx有问题?我读过ECC专利与CentOS有关的地方,这是否会引起问题?

你是对的,由于专利问题,RedHat(以及因此在CentOS的)openssl中的ECC被禁用;有关详细信息,请参阅(例如)this bugzilla entry.请注意,任何人打开一个新的跟踪器以进行评估时,它都会被关闭作为这个跟踪器的副本,因此不要被跟踪器的年龄所迷惑,认为这是一个失效的问题(旁注:尽管大多数bugzilla都是坏消息,我确实喜欢RH的评论’请注意:“Ubuntu这样做”从来都不是一个可行的法律论据.“).

你已经正确地认为,绕过这将意味着编译你自己的openssl,这很好.但是,这样做之后,你不能简单地安装打包的二进制文件,并期望它们神奇地拿起你的新库,因为它们不会.

您需要重新编译openssl,例如–prefix = /usr/local / openssl-custom,然后将其安装到新位置,然后从源代码编译Nginx,注意告诉它编译并链接新库(我不能给你一个标准的咒语,因为它因包而异,但是-with-ssl = /usr/local / openssl-custom有时可能是正确的选择).

如果你需要任何其他工具来使用Nginx,而且其中任何一个都有openssl依赖(现在,那些没有?),你也可能需要编译它们.

请让我以此劝阻你.这是很多工作;编译是最不重要的,然后你必须保持在你构建的软件包的所有新版本之上,并在它们发生变化时重建它们.我不知道为什么你决定需要Forward Secrecy,但是我强烈怀疑你会因为启用补丁而导致自己出现更多的安全问题.

另请注意上面链接的bugzilla条目中的注释43和90;如果通过Forward Secrecy,你的意思是完全向前保密(PFS),那么启用PFS似乎不需要ECC.或者等到it looks like we’re getting ECC as of RHEL6.5 (C6.5).

猜你在找的Nginx相关文章