【问题标题】:SSL and TLS Version ControlSSL 和 TLS 版本控制
【发布时间】:2016-11-07 10:21:09
【问题描述】:

关于 SSL 和 TLS 安全性,是否可以在服务器上运行每个协议的多个版本?如果是这样,我假设您必须告诉应用程序使用哪个协议,因为安装了多个版本。如果没有,类似环境有哪些选择?

示例:服务器 1 上有 TLS 1.0、1.1 和 1.2。

【问题讨论】:

  • SSLv3(无论如何都不应再使用)和所有版本的 TLS(1.0、1.1、1.2)都使用兼容的“hello”格式,该格式自动协商(并使用) 两个端点通用的最高版本(在每个会话上)。早在 20 年代初期,甚至有一个技巧可以实现 SSLv2 和 SSLv3 之间的无缝转换,但现在大部分都被搁置了。 (OpenSSL 0.9.8 直到大约一年前才做到这一点,如果您调整构建和配置,1.0.x 仍然可以。)

标签: ssl


【解决方案1】:

这当然是可能的。向后兼容性是必要的,有些客户端可能无法使用 TLS1.2,有些可能只能使用 TLS1.0,等等。TLS 协议套件处理服务器和客户端 hello 消息中的版本协商,因此一旦配置了客户端例如,仅使用 TLS 1.2,它应该能够与服务器协商该版本。 TLS 实现,如 GNUTLS 和 OpenSSL,被广泛用作流行的服务器软件(如 Nginx)的 SSL 主干,支持这样的配置:

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;

【讨论】:

    猜你喜欢
    • 2014-02-02
    • 2016-04-03
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 2014-12-12
    • 2014-12-12
    相关资源
    最近更新 更多