如何在 Nginx 中启用 TLS 1.2?

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

答案1

首先,您需要在您的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。对于较旧的浏览器,我编写了一个小技巧如何启用安全设置

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 配置的德语指南

答案2

nginx 的后续版本中已经解决了许多安全建议。如果您仍处于这种情况(6 个月前的帖子?),请认真考虑升级;如果 Web 服务器本身不安全,TLS 设置就无关紧要了。请参阅http://nginx.org/en/security_advisories.html了解详情。

如果由于某种原因您必须运行此版本的 nginx,那么有关使用 nginx(或 Apache)启用强密码套件的信息可能会有所帮助:https://community.qualys.com/blogs/securitylabs/2013/08/05/configuring-apache-nginx-and-openssl-for-forward-secrecy

答案3

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

我认为有三种选择。

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

第二,建立并维护自己的电力供应协议。有关如何执行此操作的说明,请访问使用自定义包覆盖发行包吗?为了完整性,不存在现有的Ubuntu 和 OpenSSL 的个人软件包档案提供完整的协议。

第三是升级到更高版本的 Ubuntu,例如 Ubuntu 14。我正在尝试确定 Ubuntu 14 目前是否启用了所有这些功能。请参阅Ubuntu 14、OpenSSL 和 TLS 协议?

相关内容