記錄jdk21連接SQLServer因?yàn)門LS協(xié)議報(bào)錯(cuò)問(wèn)題
報(bào)錯(cuò)信息
com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://192.168.60.93;databaseName=THIS4, errorCode 0, state 08S01 com.microsoft.sqlserver.jdbc.SQLServerException: “Encrypt”屬性設(shè)置為“true”且 “trustServerCertificate”屬性設(shè)置為“false”,但驅(qū)動(dòng)程序無(wú)法使用安全套接字層 (SSL) 加密與 SQL Server 建立安全連接:錯(cuò)誤:The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]。
解決方案
從報(bào)錯(cuò)信息上來(lái)看,是因?yàn)榭蛻舳耸褂玫膮f(xié)議版本是TLS1.3和TLS1.2,與服務(wù)器支持的版本TLS1.0不匹配導(dǎo)致握手失敗。
百度上查閱得知從JDK8開(kāi)始,默認(rèn)使用的TLS版本是TLS 1.2,JDK17默認(rèn)使用的TLS版本是TLS 1.3,但是JDK17已經(jīng)在默認(rèn)的安全配置中,把TLS1.0和TLS1.1禁用掉了。

以下是啟用TLS1.0的操作方法,操作完需要重啟服務(wù):
#jdk11+ 配置文件位置
#例:C:\Program Files\Java\jdk-21\conf\security\java.security
$JAVA_HOME/conf/security/java.security
# jdk8及以下 配置文件位置
#例:C:\Program Files\Java\jre1.8.0_421\lib\security\java.security
$JRE_HOME/lib/security/java.security
#找到里面的一行配置:
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL
#說(shuō)明:JDK中的jdk.tls.disabledAlgorithms參數(shù)用于禁用不安全或不需要的TLS密碼算法,
#以提高系統(tǒng)的安全性。通過(guò)配置這個(gè)參數(shù),可以指定JDK不支持的密碼算法或協(xié)議,以降低它們的優(yōu)先級(jí),
#減少被攻擊的風(fēng)險(xiǎn)。
#我們把TLSv1,TLSv1.1這兩個(gè)刪除掉,變成如下:
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用JFrame完成動(dòng)態(tài)模擬時(shí)鐘
本文介紹了如何使用JFrame完成動(dòng)態(tài)模擬時(shí)鐘,需要的朋友可以參考下2015-08-08
Jmeter內(nèi)置變量vars和props的使用詳解
JMeter是一個(gè)功能強(qiáng)大的負(fù)載測(cè)試工具,它提供了許多有用的內(nèi)置變量來(lái)支持測(cè)試過(guò)程,其中最常用的變量是 vars 和 props,本文通過(guò)代碼示例詳細(xì)給大家介紹了Jmeter內(nèi)置變量vars和props的使用,需要的朋友可以參考下2024-08-08
java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲代碼示例
這篇文章主要介紹了java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲代碼示例,還是挺不錯(cuò)的,這里分享給大家,需要的朋友可以參考下。2017-11-11
SpringBoot 如何使用Dataway配置數(shù)據(jù)查詢接口
這篇文章主要介紹了SpringBoot 如何使用Dataway配置數(shù)據(jù)查詢接口,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Java線程活鎖的實(shí)現(xiàn)與死鎖等的區(qū)別
活鎖是一種遞歸情況,其中兩個(gè)或更多線程將繼續(xù)重復(fù)特定的代碼邏輯,本文主要介紹了Java線程活鎖的實(shí)現(xiàn)與死鎖等的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04
Java實(shí)現(xiàn)合并兩個(gè)word文檔內(nèi)容
這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)合并兩個(gè)word文檔內(nèi)容,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
SpringBoot自定義啟動(dòng)器Starter流程詳解
SpringBoot中的starter是一種非常重要的機(jī)制,能夠拋棄以前繁雜的配置,將其統(tǒng)一集成進(jìn)starter,應(yīng)用者只需要在maven中引入starter依賴,SpringBoot就能自動(dòng)掃描到要加載的信息并啟動(dòng)相應(yīng)的默認(rèn)配置。starter讓我們擺脫了各種依賴庫(kù)的處理,需要配置各種信息的困擾2022-11-11

