文章目錄
-
-
- 一. 前言
- 二. 解決方案
-
- 方案1
- 方案2
- 三. 總結
-
一. 前言
在《數據庫原理》這門課的實驗上,需要使用SQL Server,然后使用jdbc連接sql server突然報錯為:SQLServerException: “Encrypt”屬性設置為“true”且 “trustServerCertificate”屬性設置為“false”,但驅動程序無法使用安全套接字層 (SSL) 加密與 SQL Server 建立安全連接,整理出來以下兩種解決方案。
二. 解決方案
一共兩種解決方案,如下所示:
方案1
首先是網上尋找到的第一種辦法,就是在自己安裝的JDK目錄下找到java.security文件,然后打開這個文件。查詢jdk.tls.disabledAlgorithms,然后將里面的3DES_EDE_CBC去掉,然后再使用舊的算法。
下面是我的電腦上的例子:
但是遺憾的是,這個解決辦法沒有解決我的問題。
方案2
-
連接數據庫時,如果我們需要對在客戶端與服務器之間發送的所有數據使用 TLS 加密,那么就需要設置
encrypt=true
,同時設置trustServerCertificate=true
,Microsoft JDBC Driver for SQL Server 將不驗證SQL Server TLS 證書。 此設置常用于允許在測試環境中建立連接,如 SQL Server 實例只有自簽名證書的情況。 -
連接數據庫時,如果我們不想對在客戶端與服務器之間發送的所有數據使用 TLS 加密,那么就需要設置
encrypt=false
.
操作方法如下:
String dbURL="jdbc:sqlserver://localhost:1433;databaseName=TestDB;encrypt=false";ORString dbURL="jdbc:sqlserver://localhost:1433;databaseName=TestDB;encrypt=true;trustServerCertificate=true";
三. 總結
- 修改java.secrity文件
- 在url后面加上encrypt=false或者encrypt=true;trustServerCertificate=true(
推薦
)
如果你在閱讀本文中發現描述不夠準確或有誤的地方,還請給予我一定的反饋,大家一起學習進步!!!