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"



답변

먼저 다음에서 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 구성을 위해이 독일어 안내서를 따릅니다 .


답변

nginx의 후속 버전에서 해결 된 수많은 보안 권고가 있습니다. 이 상황에서 여전히 6 개월이 지나지 않았습니까? 업그레이드를 진지하게 고려하십시오. 웹 서버 자체가 안전하지 않은 경우 TLS 설정은 중요하지 않습니다. 자세한 내용은 http://nginx.org/en/security_advisories.html 을 참조하십시오.

어떤 이유로 든이 버전의 nginx를 실행해야하는 경우 nginx (또는 Apache)를 사용하여 강력한 암호 제품군을 활성화하는 데 사용할 수있는 정보가 도움이 될 것입니다. https://community.qualys.com/blogs/securitylabs/2013/08/ 05 / apache-nginx-openssl-for-forward-secrecy 구성


답변

Ubuntu 12.04 서버에서 SSL 연결을 위해 TLS 1.1 및 1.2를 어떻게 활성화합니까?

세 가지 선택이 있다고 생각합니다.

먼저 Ubuntu 12의 OpenSSL 버전을 사용하지 마십시오. TLS 1.1이 지원되지만 TLS 1.2는 아직 지원하지 않습니다.

둘째, 자신 만의 PPA를 구축하고 유지하십시오 . 사용자 정의 패키지로 Distro 패키지 재정의에 대한 지침이 있습니까? 완벽 성을 기 하기 위해 전체 프로토콜을 제공하는 Ubuntu 및 OpenSSL 용 개인 패키지 아카이브 는 없습니다 .

세 번째는 Ubuntu 14와 같은 이후 버전의 Ubuntu로 업그레이드하는 것입니다. Ubuntu 14가 현재 모든 기능을 지원하는지 확인하려고합니다. 우분투 14, OpenSSL 및 TLS 프로토콜을 참조하십시오 ? .


답변