在 Nginx 中,如何启用 TLS 1.2?

分享于 

2分钟阅读

ubuntu

  繁體

问题

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



我假设你的服务器证书在/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;




Nginx  Openssl  tls  
相关文章