SSL-квитирование без ответа сервера с помощью Java 1.8JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 SSL-квитирование без ответа сервера с помощью Java 1.8

Сообщение Anonymous »

Я использую JDBC-драйвер Progress DataDirect (великолепно...) для Microsoft SQL Server 2012 и 2014. Оба сервера представляют собой полностью обновленные Windows, а также сервер SQL. Оба обеспечивают шифрование.

Сейчас я пытаюсь подключиться к ним с помощью своего Java-клиентского приложения, используя FIPS-совместимое хранилище доверенных сертификатов с соответствующим файлом java.security, jar-файлами и наборами шифров неограниченной стойкости. Хранилище доверенных сертификатов содержит самозаверяющий сертификат моего собственного центра сертификации. Используемый алгоритм – RSA.

При использовании JDK 1.7.0_21 он работает безупречно, но когда я перехожу на 1.8.0_74 (самая последняя версия), он терпит неудачу, потому что SQL-сервер не хочет для ответа после ClientHello. После этого он просто отключается со сбросом соединения.

Более того, я пробовал устанавливать эти свойства отдельно в разных комбинациях, но в JDK 1.8 ничего не получалось.
  • -Dhttps.protocols=TLSv1
  • -Dcom.sun.net.ssl.enableECC=false
  • -Djdk .tls.client.protocols=TLSv1
Свойства соединения JDBC также включаются и выключаются в различных комбинациях:


[*]CryptoProtocolVersion=TLSv1.2
[*]HostNameInCertificate=my.host.com


Я пробовал TLS 1.2, 1.1 и 1, но ничего не помогло.

Поскольку это работает с JDK 1.7, я склонен думать, что JDK 1.8 нарушил этот механизм.

Журнал отладки с JDK 1.8 содержат эту запись журнала, которая полностью отличается от JDK 1.7

1.8:

Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_128_GCM_SHA256
Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_GCM_SHA384
Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256


1.7

Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256
Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA
Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA
Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256
Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384


Что еще я могу попробовать со своей стороны, чтобы обойти эту проблему? Переход обратно на 1.7, к сожалению, для меня невозможен.

РЕДАКТИРОВАТЬ:

Это последняя часть -Djavax.net .debug=all:

*** ClientHello, TLSv1.2
RandomCookie: GMT: 1440778452 bytes = { 133, 30, 185, 72, 50, 27, 253, 188, 73, 244, 59, 197, 169, 24, 142, 134, 78, 66, 122, 216, 60, 62, 232, 121, 107, 245, 32, 53 }
Session ID: {}
Cipher Suites: [TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
Compression Methods: { 0 }
Extension signature_algorithms, signature_algorithms: SHA512withECDSA, SHA512withRSA, SHA384withECDSA, SHA384withRSA, SHA256withECDSA, SHA256withRSA, SHA224withECDSA, SHA224withRSA, SHA1withECDSA, SHA1withRSA, SHA1withDSA, MD5withRSA
Extension server_name, server_name: [type=host_name (0), value=my.sqlserver.com]
***
[write] MD5 and SHA1 hashes: len = 130

main, WRITE: TLSv1.2 Handshake, length = 130
[Raw write]: length = 135



Код вызова следующий:

Connection connection = DriverManager.getConnection(url, getProps());

private static Properties getProps()
{
Properties properties = new Properties();
properties.setProperty("User", "sa");
properties.setProperty("Password", "password");
properties.setProperty("EncryptionMethod", "SSL");
properties.setProperty("HostNameInCertificate", "my.sqlserver.com");
properties.setProperty("TrustStore", "

Подробнее здесь: https://stackoverflow.com/questions/359 ... h-java-1-8
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»