前言
同事設定 CAS 連接 MS SQL Server 啟動後會噴以下的錯誤,org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 驅動程式無法使用安全通訊端層 (SSL) 加密建立與 SQL Server 的安全連接。錯誤: "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"。 ClientConnectionId:7c5b19e7-9ebe-4175-83d8-b179b04fe16d / Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 驅動程式無法使用安全通訊端層 (SSL) 加 密建立與 SQL Server 的安全連接。錯誤: "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
解法
查看連線字串為 jdbc:sqlserver://rmsql\sqlexpress;databaseName=cas;integratedSecurity=true
依JDBC 了解加密支援 連線字串中沒設定 encrypt
就表示不啟用 encrypt,
那怎麼會走 SSL 呢?
詢問 Java 開發的同事 9G 及 Willy 大大,
他說加一下 encrypt=false
。
結果,加上去再跑,果然就過了,QQ。
所以,如果在本機測試,不想要走 SSL 的話,請記得要設定 encrypt=false
,
才不會強迫走 TLS 哦~