如何在Nginx中启用TLS 1.2?


17

如何在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"

你找到了吗?
BigSack

您解决了吗?您使用的Nginx版本太旧了。您可能会在此Ars Technica文章中发现SSL配置很有用。
保罗

Answers:


14

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

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。对于较旧的浏览器,我写了一个小的方法来启用安全设置

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配置


由于互操作性,Ubuntu 12禁用TLS 1.1和TLS 1.2。我认为他们最近启用了TLS 1.1,但我认为仍然缺少TLS 1.2。请参阅OpenSSL降级版本为1.0.0,并且不支持TLS 1.2

1

在后续版本的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进行转发保密


0

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

我相信有三个选择。

首先,什么也不做,并使用Ubuntu 12的OpenSSL版本。我认为现在支持TLS 1.1,但是您仍然没有TLS 1.2。

其次,建立并维护自己的PPA。在“ 使用自定义程序包覆盖发行版程序包”中有一些说明为了完整起见,目前没有提供完整协议的适用于Ubuntu和OpenSSL的个人软件包存档

第三是升级到更高版本的Ubuntu,例如Ubuntu14。我试图确定Ubuntu 14目前是否启用了它们。查看Ubuntu 14,OpenSSL和TLS协议?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.