解決SpringBoot連接SqlServer出現(xiàn)的問(wèn)題
SpringBoot連接SqlServer出現(xiàn)問(wèn)題
“Encrypt”屬性設(shè)置為“true”且 “trustServerCertificate”屬性設(shè)置為“false”
但驅(qū)動(dòng)程序無(wú)法使用安全套接字層 (SSL) 加密與 SQL Server 建立安全連接:
錯(cuò)誤:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target。
通過(guò)yml配置時(shí)出現(xiàn)了上方的問(wèn)題
spring:
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: sa
password: 123456
url: jdbc:sqlserver://localhost:1433;databaseName=xxx;這時(shí)候注意你的sql語(yǔ)句不能寫(xiě)錯(cuò)了,不然也會(huì)報(bào)錯(cuò)
在數(shù)據(jù)庫(kù)名后面 ;trustServerCertificate=true 加上這個(gè)就可以了
Java連接SqlServer報(bào)服務(wù)端僅支持TLS10
報(bào)錯(cuò)
Invocation of init method failed; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]
通過(guò)查閱網(wǎng)上資料大部分說(shuō)原因是Java認(rèn)為T(mén)LSv1不太安全所以在java.security中通過(guò)jdk.tls.disabledAlgorithms配置禁用了TLSv1, TLSv1.1,導(dǎo)致Java應(yīng)用作為SQLServer客戶(hù)端連接服務(wù)時(shí)使用的TLS13, TLS12協(xié)議,但是SQLServer服務(wù)端可能版本比較老或者配置了僅支持TLS10導(dǎo)致報(bào)上述錯(cuò)誤
原因是最近更新了jdk8的小版本導(dǎo)致Java的安全文件變更了
處理方式
修改基礎(chǔ)鏡像中的/usr/java/latest/jre/lib/security/java.security文件內(nèi)容,替換成之前的內(nèi)容
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
redis setIfAbsent和setnx的區(qū)別與使用說(shuō)明
這篇文章主要介紹了redis setIfAbsent和setnx的區(qū)別與使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
SpringBoot發(fā)現(xiàn)最新版Druid重大問(wèn)題(坑)
這篇文章主要介紹了SpringBoot發(fā)現(xiàn)最新版Druid重大問(wèn)題(坑),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
SpringBoot最新定時(shí)任務(wù)的7種實(shí)現(xiàn)方案
在現(xiàn)代應(yīng)用中,定時(shí)任務(wù)是一個(gè)非常常見(jiàn)的需求,本文將通過(guò)7種方式講解如何在SpringBoot中實(shí)現(xiàn)定時(shí)任務(wù),包括使用@Scheduled注解、ScheduledExecutorService、Quartz、SpringTaskScheduler、Redis、XXL-JOB和Elastic-Job等,各有優(yōu)缺點(diǎn),選擇時(shí)應(yīng)根據(jù)實(shí)際需求進(jìn)行考慮2024-12-12
spring中jdbcTemplate.batchUpdate的幾種使用情況
本文主要介紹了spring中jdbcTemplate.batchUpdate的幾種使用情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
springboot中RestTemplate配置HttpClient連接池詳解
這篇文章主要介紹了springboot中RestTemplate配置HttpClient連接池詳解,這些Http連接工具,使用起來(lái)都比較復(fù)雜,如果項(xiàng)目中使用的是Spring框架,可以使用Spring自帶的RestTemplate來(lái)進(jìn)行Http連接請(qǐng)求,需要的朋友可以參考下2023-11-11
SpringBoot?AOP?Redis實(shí)現(xiàn)延時(shí)雙刪功能實(shí)戰(zhàn)
本文主要介紹了SpringBoot?AOP?Redis實(shí)現(xiàn)延時(shí)雙刪功能實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
JAVA像SQL一樣對(duì)List對(duì)象集合進(jìn)行排序
這篇文章主要介紹了JAVA像SQL一樣對(duì)List對(duì)象集合進(jìn)行排序的實(shí)現(xiàn)方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
Java面試之限流的實(shí)現(xiàn)方式小結(jié)
限流是指在各種應(yīng)用場(chǎng)景中,通過(guò)技術(shù)和策略手段對(duì)數(shù)據(jù)流量、請(qǐng)求頻率或資源消耗進(jìn)行有計(jì)劃的限制,本文為大家整理了常見(jiàn)的限流的實(shí)現(xiàn)方式,有需要的可以參考下2024-02-02

