Проблема с Jetty SSL после обновления - неизвестный протокол - PullRequest
0 голосов
/ 28 мая 2020

Я обновил 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, все работает нормально.

Я настроил более новую причалку версия так же, как и предыдущая (включая путь к хранилищу ключей и включение поддержки https). Вы знаете, что могло пойти не так во время обновления или что я мог пропустить?

Большое спасибо за вашу поддержку.

1 Ответ

0 голосов
/ 28 мая 2020

Jetty 9.3.x и 9.4.x имеют разные исключения Cipher Suite.

Jetty 9.3.6.v20151106 выглядит так ...

https://github.com/eclipse/jetty.project/blob/jetty-9.3.6.v20151106/jetty-util/src/main/java/org/eclipse/jetty/util/ssl/SslContextFactory.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.com/eclipse/jetty.project/blob/jetty-9.4.29.v20200521/jetty-util/src/main/java/org/eclipse/jetty/util/ssl/SslContextFactory.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 (в отличие от всех других JVM которые используют имена RF C Registered Cipher Suite).

...