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) используют совместимый формат «привет», который ** автоматически согласовывает ** (и использует) самую высокую версию, общую для обеих конечных точек (на каждом сеансе). Был даже трюк, который позволил провести плавный переход между SSLv2 и SSLv3-up-back еще в ранние новички, но теперь это в основном упало на обочине. (OpenSSL 0.9.8 делал это примерно год назад, а 1.0.x все еще может, если вы настраиваете сборку и конфигурацию.) –

ответ

1

Это, безусловно, возможно. Для обратной совместимости это необходимо, некоторые клиенты могут не разговаривать с TLS1.2, некоторые из них могут быть способны только TLS1.0 и т. Д. В пакете протокола TLS выполняется согласование версий в приветственных сообщениях сервера и клиента, поэтому после настройки клиента для использования, скажем, только TLS 1.2, он должен иметь возможность согласовать эту версию с сервером. TLS Реализация, такие как GnuTLS и OpenSSL, которые широко используются в качестве SSL позвоночника популярного серверного программного обеспечения, таких как Nginx, поддерживает такую ​​конфигурацию тривиальную:

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;