Драйвер SQL Server Jdbc не может подключиться к базе данных с помощью TLS1.2

Я хочу подключиться к своему экземпляру базы данных с помощью TLS1.2 из экземпляра Linux, но я не могу этого сделать. Я использую следующую конфигурацию

  1. Java JDK: версия Amazon corretto openjdk: 1.8.0_252
  2. Драйвер JDBC: сервер Microsoft SQL mssql-jdbc:8.2.2.jre8
  3. Строка подключения: jdbc:sqlserver://[моя URL-адрес базы данных]:1433;SSLProtocol=TLSv1.2
  4. Операционная система: Амазон Линукс
  5. База данных: Microsoft SQL Server 16, работающий на компьютере с Windows.
  6. Я отключил TLS1 и TLS1.0 в базе данных, чтобы заставить мое Java-приложение использовать только TLS1.2.

Следующая ошибка появляется, когда мое приложение пытается подключиться к базе данных:

com.microsoft.sqlserver.jdbc.SQLServerException: Драйверу не удалось установить безопасное соединение с SQL Server с помощью шифрования Secure Sockets Layer (SSL). Ошибка: Нет подходящего протокола (протокол отключен или наборы шифров не подходят).


person Pooja    schedule 14.10.2020    source источник


Ответы (1)


Возможно, это не лучшее решение, но чтобы заставить мое приложение работать, я использовал

java.security.Security.setProperty(jdk.tls.disabledAlgorithms,SSLv3, RC4, DES, MD5withRSA, DH keySize ‹ 1024, EC keySize ‹ 224, 3DES_EDE_CBC, anon, NULL);

Я обновился с Java 8.0.202 до 8.0.291 и получил упомянутую вами проблему, которая отключила TLS 1.0 и 1.1. Свойство, которое я установил выше, - это настройки из Java 8.0.202.

person Ruch    schedule 01.06.2021