Jetty SSL升级后的问题--未知协议

问题描述 投票:0回答:1

我把Jetty 9.3.6升级到了Jetty 9.4.27,但我在SSL连接上遇到了问题。

当我在一些支持的操作上运行curl时,我得到了以下信息error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol (error 35) 而当我在运行Jetty 9.3.6的服务器上运行同样的命令时,一切都正常。

我以旧版本的方式配置了Jetty的新版本(包括keystore路径和启用https支持)。你知道在升级过程中,有什么地方出了问题,或者我漏掉了什么吗?

非常感谢你的支持。

ssl https jetty jetty-9
1个回答
0
投票

Jetty 9.3.x和9.4.x有不同的Cipher Suite排除。

Jetty 9.3.6.v20151106是这样的 ...

https:/github.comeclipsejetty.projectblobjetty-9.3.6.v20151106jetty-utilsrcmainjavaorgeclipsejettyutilsslSslContextFactory.java#L248-L260。

        addExcludeProtocols("SSL", "SSLv2", "SSLv2Hello", "SSLv3");
        setExcludeCipherSuites(
                "SSL_RSA_WITH_DES_CBC_SHA",
                "SSL_DHE_RSA_WITH_DES_CBC_SHA",
                "SSL_DHE_DSS_WITH_DES_CBC_SHA",
                "SSL_RSA_EXPORT_WITH_RC4_40_MD5",
                "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
                "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
                "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA");

Jetty 9.4.29.v20200521是这样的......

https:/github.comeclipsejetty.projectblobjetty-9.4.29.v20200521jetty-utilsrcmainjavaorgeclipsejettyutilsslSslContextFactory.java#L119-L138。

    /**
     * Default Excluded Protocols List
     */
    private static final String[] DEFAULT_EXCLUDED_PROTOCOLS = {"SSL", "SSLv2", "SSLv2Hello", "SSLv3"};
    /**
     * Default Excluded Cipher Suite List
     */
    private static final String[] DEFAULT_EXCLUDED_CIPHER_SUITES = {
        // Exclude weak / insecure ciphers
        "^.*_(MD5|SHA|SHA1)$",
        // Exclude ciphers that don't support forward secrecy
        "^TLS_RSA_.*$",
        // The following exclusions are present to cleanup known bad cipher
        // suites that may be accidentally included via include patterns.
        // The default enabled cipher list in Java will not include these
        // (but they are available in the supported list).
        "^SSL_.*$",
        "^.*_NULL_.*$",
        "^.*_anon_.*$"
    };

你要评估为什么你需要已知的脆弱的密码套件来运作。

另外,如果你使用的是IBM JVM,那么所有的赌注都会被取消,因为IBM使用的是非标准的Cipher Suite名称(与所有其他使用RFC注册密码套件名称的JVM不同)。

© www.soinside.com 2019 - 2024. All rights reserved.