Я разработал свое приложение в 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,
- 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>
- 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