2016-07-05 3 views
0

SSL 및 TLS 보안과 관련하여 서버에서 각 프로토콜의 여러 버전을 실행할 수 있습니까? 그렇다면 여러 버전이 설치되어 있기 때문에 어떤 프로토콜을 사용해야하는지 응용 프로그램에 알려야한다고 가정합니다. 그렇지 않은 경우 유사한 환경에 어떤 옵션이 있습니까?SSL 및 TLS 버전 제어

예 : 서버 1에는 TLS 1.0, 1.1 및 1.2가 있습니다.

+0

SSLv3에 (더 이상 어쨌든 사용 안 함) 및 TLS의 모든 버전을 (1.0, 1.1, 1.2)는 호환 가능한 'hello'형식을 사용합니다 ** ** 자동으로 각 세션에서 양쪽 끝점에 공통된 가장 높은 버전을 협상합니다 **. 초기 지식에서 SSLv2와 SSLv3 간의 원활한 전환을 허용하는 트릭이 있었지만 이제는 길가에 떨어져 나갔습니다. (OpenSSL 0.9.8은 약 1 년 전까지, 그리고 1.0.x는 빌드와 설정을 조정할 수 있습니다.) –

답변

1

확실히 가능합니다. 이전 버전과의 호환성을 위해서는 클라이언트가 TLS1.2를 말할 수 없거나 일부 클라이언트 만 TLS1.0을 사용할 수있는 경우가 있습니다. TLS 프로토콜 제품군은 서버 및 클라이언트 hello 메시지의 버전 협상을 처리하므로 클라이언트가 구성되면 말하자면 TLS 1.2 만 사용하려면 서버와 해당 버전을 협상 할 수 있어야합니다. 널리 Nginx와 같은 인기있는 서버 소프트웨어의 SSL 백본으로 사용되는 등 GNUTLS 및 OpenSSL이 같은 TLS의 구현은, 사소 이러한 구성을 지원합니다

http { 
    ssl_session_cache shared:SSL:10m; 
    ssl_session_timeout 10m; 

    server { 
     listen    443 ssl; 
     server_name   www.example.com; 
     keepalive_timeout 70; 

     ssl_certificate  www.example.com.crt; 
     ssl_certificate_key www.example.com.key; 
     ssl_protocols  TLSv1 TLSv1.1 TLSv1.2; 
     ssl_ciphers   HIGH:!aNULL:!MD5;