Невозможно соединить Netapp (8.1.4P1 7-Mode) с jdk1.8.0_181
У нас ниже настройки безопасности на стороне хранилища (8.1.4P1 7-Mode)
Конфигурации
tls.enable on
ssl.enable on
ssl.v2.enable off
ssl.v3.enable off
Мы попытались получить доступ к хранилищу с помощью NetApp Manageability SDK 5.7, и он отлично работает с jdk1.8.0_161.
Мы обновляем JDK до jdk1.8.0_181 и затем не можем получить к нему доступ, это исключение
`2018-08-03 05:06:27,071 [Thread-1469] app-ERROR-javax.net.ssl.SSLException: Connection has been shutdown: `javax.net.ssl.SSLHandshakeException`: Received fatal alert: handshake_failure at` `sun.security.ssl.SSLSocketImpl.checkEOF(SSLSocketImpl.java:1551)`
at sun.security.ssl.AppInputStream.read(AppInputStream.java:95)
at sun.security.ssl.AppInputStream.read(AppInputStream.java:71)
at netapp.manage.http.HTTPMessage.readLine(HTTPMessage.java:245)
at netapp.manage.http.HTTPResponse.read(HTTPResponse.java:74)
at netapp.manage.http.HTTPClient.doRequest(HTTPClient.java:772)
at netapp.manage.NaServer.invokeHTTP(NaServer.java:955)
Согласно примечаниям к выпуску jdk "jdk1.8.0_181", JDK 181 отключил "комплекты шифров 3DES".
Есть ли способ исправить это со стороны NetApp?
1 ответ
Хотя это и не ответ на прямой вопрос о том, как решить эту проблему со стороны NetApp, проблему можно решить на стороне приложения, удалив "3DES_EDE_CBC" из свойства безопасности jdk.tls.disabledAlgorithms во время выполнения. Что-то вроде:
final String JDK_TLS_DISABLED_ALGORITHMS = "jdk.tls.disabledAlgorithms";
final String TRIPLE_DES_EDE_CBC = "3DES_EDE_CBC";
final String disabledAlgorithms = Splitter.on(',').trimResults()
.splitToList(Security.getProperty(JDK_TLS_DISABLED_ALGORITHMS)).stream()
.filter(algo -> !algo.equals(TRIPLE_DES_EDE_CBC)).collect(joining(", "));
Security.setProperty(JDK_TLS_DISABLED_ALGORITHMS, disabledAlgorithms);