Spring boot: ни один из указанных [шифров] не поддерживается механизмом SSL

У нас есть служба весенней загрузки (2.0) с включенной конечной точкой отдыха SSL. мы добавили следующие свойства в наш application.properties

server.ssl.enabled:true
server.ssl.key-store-type=JKS
server.ssl.key-store:test.jks
server.ssl.key-store-password:123234
server.ssl.key-alias: test-service
server.ssl.ciphers=RSA_WITH_AES_256_CBC_SHA256
server.ssl.protocol=TLS

Но мы получаем это исключение при запуске службы

Caused by: java.lang.IllegalArgumentException: None of the [ciphers] specified are supported by the SSL engine : [[]]
        at org.apache.tomcat.util.net.SSLUtilBase.getEnabled(SSLUtilBase.java:91) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.tomcat.util.net.SSLUtilBase.<init>(SSLUtilBase.java:65) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.tomcat.util.net.jsse.JSSEUtil.<init>(JSSEUtil.java:144) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.tomcat.util.net.jsse.JSSEImplementation.getSSLUtil(JSSEImplementation.java:50) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:104) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:87) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:225) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1150) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:591) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.connector.Connector.startInternal(Connector.java:1018) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]

Любая помощь в решении этой проблемы ?. Пробовал с флагом Cipher Suite с помощью Customizer

@Bean
    public WebServerFactoryCustomizer<TomcatServletWebServerFactory> sessionManagerCustomizer() {
        msgLogger.info("Inside webserver container bean to enable cipher suite config");
            return server -> server.addConnectorCustomizers((connector) -> {
                ((AbstractHttp11Protocol<?>) connector.getProtocolHandler())
                .setUseServerCipherSuitesOrder(Boolean.toString(true));
    });
    }

Буду признателен за любую оказанную помощь. Мы застряли в этом больше двух дней. Спасибо

Краткий ответ от дублировать: Вам необходимо установить файлы политики юрисдикции неограниченной надежности Java Cryptography Extension (JCE).

Andreas 24.08.2018 20:06

Нет, это не дубликат. Клиентская система отправляет RSA_WITH_AES_256_CBC_SHA256, тогда как SSL для tomcat - TLS_RSA_WITH_AES_256_CBC_SHA256, из-за чего я получаю исключение

Sudharsan 25.08.2018 02:04

Ошибка говорит «Ни один из [шифров] указан не поддерживается». Запись server.ssl.ciphers=RSA_WITH_AES_256_CBC_SHA256 - это Спецификация, на которое она ссылается, и в ней говорится, что ни один из перечисленных шифров (все 1 из них) не является поддержанный. Судя по моему чтению трассировки стека, ошибка возникает, когда он пытается инициализировать SSL Engine, то есть перед он подключился к удаленной системе, поэтому ошибка не в удаленной системе, а полностью в вашей конфигурации.

Andreas 25.08.2018 05:16

Поскольку шифр клиентской системы RSA_WITH_AES_256_CBC_SHA256 не был обнаружен механизмом SSL, я получил исключение после включения журнала SSL (javax.net.ssl.SSLHandshakeException: нет общих наборов шифров). Из-за чего мне пришлось указать это в файле свойств. Вот когда у меня возникла эта проблема при запуске службы

Sudharsan 25.08.2018 20:27

Если вы запустите код, показанный в дубликате, вы увидите, какие шифры у вас есть. Если вывод будет как в дубликате, вы увидите, что такого шифра, как RSA_WITH_AES_256_CBC_SHA256, нет. Один с префиксом TLS_DHE_, а другой - только с TLS_.

Andreas 26.08.2018 01:11

@Andreas, согласно этому: stackoverflow.com/questions/1179672/… JCE включен по умолчанию уже начиная с определенной второстепенной версии основных выпусков Java.

Artanis Zeratul 25.06.2019 01:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
6
1 109
0

Другие вопросы по теме