如何在Nginx中启用TLS 1.2?

如何在我的Ubuntu 12.04服务器中为SSL连接启用TLS 1.1和1.2? 我使用的是以下版本的nginx和openssl库。

$ ./nginx -v nginx version: nginx/1.2.3 $ openssl version -a OpenSSL 1.0.1 14 Mar 2012 built on: Tue Jun 4 07:26:06 UTC 2013 platform: debian-amd64 options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -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/lib/ssl" 

首先,您需要在nginx.conf激活SSL / TLS:

 server { listen 443 ssl; listen [::]:443 ssl; server_name example.org; ssl_certificate /etc/ssl/example.org.crt; ssl_certificate_key /etc/ssl/private/example.org.key; 

两条listen线路在IPv4和IPv6连接上启用SSL。 如果您没有IPv6,则可能会遗漏第二条listen线。

我假设您的服务器证书位于/etc/ssl 。 如果您使用其他路径,则需要更改最后两行。

 ssl_protocols TLSv1.2 TLSv1.1 TLSv1; 

这可以实现不同的TLS版本。 所有当前浏览器都可以使用TLS1.2。 对于较旧的浏览器,我写了一个小的howto启用安全设置 。

 ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA; ssl_prefer_server_ciphers on; 

第一行设置你的nignx应该使用的密码。 第二行更喜欢服务器(而不是客户端)端的密码套件。 所以你可以使用强(密码)密码。

如果你完成了,你的nginx应该使用TLS1.2。 如果您愿意,可以将您的网站添加到TLS1.2名人堂,并感到自豪。 ;)

但是,有几种方法可以改善设置。 我遵循这个德国指南,以获得安全的nginx配置 。

在后续版本的nginx中已经解决了许多安全建议。 如果你仍然(6个月过时?)在这种情况下,认真考虑升级; 如果Web服务器本身不安全,则TLS设置无关紧要。 有关详细信息,请参见http://nginx.org/en/security_advisories.html 。

如果由于某种原因你必须运行这个版本的nginx,那么在这里使用nginx(或Apache)启用强密码套件的可用信息可能会有所帮助: https : //community.qualys.com/blogs/securitylabs/2013/08/ 05 /配置的Apache-nginx的和- OpenSSL的换向前保密

如何在我的Ubuntu 12.04服务器中为SSL连接启用TLS 1.1和1.2?

我相信有三种选择。

首先,什么也不做,使用Ubuntu 12的OpenSSL版本。 我相信现在支持TLS 1.1,但你仍然没有TLS 1.2。

其次,建立并维护自己的PPA 。 在Override Distro Package with Custom Package中有一些说明吗? 为了完整起见,Ubuntu和OpenSSL不存在提供完整协议的现有个人包存档 。

第三是升级到Ubuntu的更高版本,比如Ubuntu 14.我正在尝试确定Ubuntu 14目前是否支持所有版本。 请参阅Ubuntu 14,OpenSSL和TLS协议? 。