SSL 和 TLS 版本控制

标签 ssl

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

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

最佳答案

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

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;

关于SSL 和 TLS 版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38205816/

相关文章:

forms - Web 表单在安全 https 时表现不同

apache - 为什么 http 和 https 协议(protocol)指向不同的目录?

java - 如何在 SSL 握手中的 JKS 中获取正确的证书

ssl - 将 Jetty 9 和 jetty.xml 与 BaseX 结合使用

java - 如何为 Https 请求配置 Web 客户端

python - 使用 Python 请求修复 SSL 证书错误

java - 在 Apache 和游戏服务器之间拆分 https

c# - Ajax 错误 - 在 ASP.NET MVC 应用程序中抛出错误

android - Android 2.3 中的“无对等证书”错误,但 4 中没有

java - 收到致命警报:SSLHandshakeException中的handshake_failure