весенняя загрузка в Ubuntu для подключения к SQL серверу 14 обнаружен javax. net .ssl.SSLHandshakeException - PullRequest
0 голосов
/ 30 марта 2020

Я разработал свое приложение в Windows 7, которое можно подключить к Ms sql серверу 14, но не получилось, когда я запустил то же приложение в Ubuntu, за исключением: java .security.cert.CertPathValidatorException

Я разработал свое приложение в среде Windows 7, используя java версию 1.8.0_111, с загрузочной версией Spring: 2.2.5.RELEASE; Весенняя облачная версия Hoxton.SR3; Ms sql -jdb c версия 6.4.0.jre8

application.properties, связанные с ms sql:

spring.datasource.url=jdbc:sqlserver://<<host>>:<<port>>;databaseName=<<database name>>;
spring.datasource.username=<<username>>
spring.datasource.password=<<password>

spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.database-platform=org.hibernate.dialect.SQLServer2012Dialect

В этой среде я могу успешно подключиться к своему Microsoft SQL Server 14.

После этого я упаковываю свое приложение в файл jar (скажем, myjar.jar), а затем помещаю его на хост ubuntu. на моем хосте Ubuntu версия java: openjdk версия "1.8.0_242"

Я запускаю с помощью команды "java -jar myjar.jar", затем выдает исключения с root причиной :

java.security.cert.CertPathValidatorException: Algorithm constraints check failed on keysize limits. RSA 1024bit key used with certificate: CN=SSL_Self_Signed_Fallback. Usage was tls server

Я испробовал следующие методы, но все не удалось: 1) добавить encrypt = false к URL-адресу соединения

2) Я ссылался на некоторые сообщения, связанные с java .security, подобная этой ссылке, Ошибка проверки SSl Handshake при подключении к SQL Серверу от JDB C Драйвер Поэтому я попытался изменить эти 2 конфигурации в файле spring.security в моем Ubuntu с помощью ссылаясь на те же настройки в моих Windows 7,

  1. jdk.certpath.disabledAlgorithms из MD2, MD5, SHA1 jdkCA & использование TLSServer, RDS keySize <1024, DSA keySize <2014, E C keySize <224 </strong> до MC2, MD5, RDS keySize <1024 </strong>
  2. jdk.tls.disableAlgorithms от SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, E C размер ключа <224, 3DES_EDE_CB C, anon, NULL </strong> до * 10 32 * SSLv3, RC4, MD5 с RSA, DH keySize <768 </strong>

Пожалуйста, помогите решить эту проблему. Я понятия не имею, почему одно и то же приложение с (почти) одинаковыми конфигурациями, которые могут быть запущены на Windows 7, но не на Ubuntu

update После некоторых исследований по аналогичным вопросам кто-то предлагает запустить следующую команду, чтобы найти соответствующую информацию

-Djava.security.debug=certpath

После того, как я запустил програнь в Ubuntu с этим аргументом, он распечатал некоторые методы шифрования. Но ничего не печаталось на Windows.

Кроме того, проверил, что MS Sql должен быть настроен без использования шифрования, потому что в sys.dm_exec_connections параметр encrypt_option всех сессий равен FALSE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...