我正在尝试使用 nginx 网络服务器在 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
Run Code Online (Sandbox Code Playgroud)
现在 OpenSSL 支持椭圆曲线密码 (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
Run Code Online (Sandbox Code Playgroud)
并按照此链接中的描述配置 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;
Run Code Online (Sandbox Code Playgroud)
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 存在问题,这会导致问题吗?