[英]Getting SSL error while trying to connect to SQL-Server 2014
嘗試連接到 SQL Server 2014 時出錯。我正在使用 JRE7 和 sqljdbc4-4.0.jar
這是我的 java 代碼:
package com.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Testing {
public static void main(String[] args) {
String url = "jdbc:sqlserver://localhost:1433;databaseName=test;encrypt=false";
String user = "sa";
String pass = "";
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException: " + e);
}
try (Connection con=DriverManager.getConnection(url,user, pass);
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("SELECT * FROM exts WHERE ext = 1001");){
if(rs.next()) {
System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3));
} else {
System.out.println("NOT_FOUND");
}
}catch(Exception e){
e.printStackTrace();
}
}
}
這是完整的堆棧跟蹤:
java.ext.dirs: C:\Cisco\CallStudio\eclipse\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure使用安全 Sockets 層 (SSL) 加密連接到 SQL 服務器。 錯誤:“SQL Server 未返回響應。連接已關閉。ClientConnectionId:dd9cabc2-3683-4a14-857c-eeefd2751853”。 at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667) at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1668) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper (SQLServerConnection.java:1323) at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827) at com.microsoft. sqlserver.jdbc.SQLServerDr iver.connect(SQLServerDriver.java:1012) at java.sql.DriverManager.getConnection(DriverManager.java:571) at java.sql.DriverManager.getConnection(DriverManager.java:215) at com.test.Testing.main(Testing .java:32) Caused by: java.io.IOException: SQL Server did not return a response. 連接已關閉。 ClientConnectionId:dd9cabc2-3683-4a14-857c-eeefd2751853 at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:651) at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java :708) at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:700) at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:895) at com.microsoft. sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:883) 在 sun.security.ZF9D 5C16A7F42203F8C195432354A3271Z.InputRecord.readFully(InputRecord.java:442) at sun.security.ssl.InputRecord.read(InputRecord.java:480) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927) at sun.security .ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) at com. microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1618)... 7 更多
TLS 版本不匹配時會發生 SSL 異常。 當您使用 Java 7 時,請嘗試將 sslProtocol=TLSv1.2 添加到您的連接字符串中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.