Spring Boot 在www.example.com文件中禁用协议的问题java.security

bq9c1y66  于 2023-02-04  发布在  Spring
关注(0)|答案(1)|浏览(153)

我在jetty服务器上部署了springboot应用程序,并在java 8上运行。我想强制我的应用程序仅使用TLSv1.3。为此,在java.securityjre的www.example.com文件中,我使用以下属性禁用了除TLSv1.3以外的所有协议:

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024, 3DES_EDE_CBC, DESede, \
    EC keySize < 224, DES40_CBC, RC4_40, TLSv1, TLSv1.1, TLSv1.2

当我试图启动jetty时,它给我以下错误:

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "No appropriate protocol, may be no appropriate cipher suite specified or protocols are deactivated". ClientConnectionId:de77b523-984a-4700-a19b-ccfd0407dfb4
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1748)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1704)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1401)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1068)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:904)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:451)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1014)
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364)
    at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476)
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)

**我没有使用安全连接到数据库。**下面是application.properties数据库文件条目:

spring.datasource.url=jdbc:sqlserver://172.20.186.175:1433;Databasename=DB_Jan_2023_new;SendStringParametersAsUnicode=false
spring.datasource.username=sa
spring.datasource.password={ENC}ACED0005740003414553757200025B42ACF317F8060854E0020000787000000008E3425FF8F9E058D0737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000008007571007E000100000010B2E212D690ECC67BC4663C4DFEE3542C74000456322E30
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
  • 我不知道为什么它会给出这个错误,虽然我没有使用安全连接。
  • 另外,这是将应用程序迁移到TLSv1.3的正确方法吗?还是还有其他步骤?
  • Q3.如何检查我的应用程序是否已迁移到TLSv1.3?
js4nwp54

js4nwp541#

TLS 1.3 per the documentation需要SQL Server TDS协议版本8。TDS 8是随SQL Server 2022引入的,在其他版本中不可用。此外,截至本文撰写之时,只有最新的ODBC和OLEDB客户端驱动程序添加了对TDS 8的支持。TLS 1.3尚未随Microsoft JDBC驱动程序提供。

相关问题