Nginx에서 TLSv1.0 및 TLSv1.1을 비활성화하는 방법

Nginx에서 TLSv1.0 및 TLSv1.1을 비활성화하는 방법

TLSv1 및 1.1 Nginx를 비활성화하고 1.2에서만 연결을 허용하는 방법을 찾으려고 합니다. 이것은 프로덕션 용도보다 테스트상의 이유이며 Nginx가 왜 이것을 허용하지 않는지 알 수 없습니다.

Nginx SSL 구성:

ssl on;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM256:DH+AESGCM256:ECDH+AES256:!aNULL:!MD5:!kEDH;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=262974383; includeSubdomains;";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;

그러나 어떤 이유로 Nginx는 여전히 1.0 및 1.1 연결을 협상합니다. 내가 뭔가 잘못하고 있는 걸까요? OpenSSL 1.0.1f가 설치된 Ubuntu Server 14.04LTS에서 Nginx 1.7.10을 사용하고 있습니다.

답변1

로부터nginx 문서지시문 의 경우 ssl_protocols:

TLSv1.1 및 TLSv1.2 매개변수는 버전 1.1.13 및 1.0.12부터 지원되므로 OpenSSL 버전 1.0.1 이상이 이전 nginx 버전에서 사용되는 경우 이러한 프로토콜은 작동하지만 비활성화할 수 없습니다.

openssl최신 버전에서는 다음 명령을 사용하여 이를 확인할 수 있습니다 .

  • TLS v1.2가 지원되는지 확인합니다.openssl s_client -tls1_2 -connect example.org:443 < /dev/null
  • TLS v1.1이 다음과 같은지 확인하세요.~ 아니다지원됨:openssl s_client -tls1_1 -connect example.org:443 < /dev/null
  • TLS v1.0이 다음과 같은지 확인하세요.~ 아니다지원됨:openssl s_client -tls1 -connect example.org:443 < /dev/null

nginx 구성에 ssl_protocols TLSv1.2지시문만 포함된 경우 TLSv1.2만 지원됩니다. ssl_protocols TLSv1.1 and TLSv1.2구성된 경우 TLSv1.1 및 TLSv1.2만 지원됩니다. openssl 1.0.1e및 으로 테스트되었습니다 nginx 1.6.2.

관련 정보