【发布时间】:2016-10-05 11:15:35
【问题描述】:
我是 Android 应用程序开发的新手,我正在尝试使用本机 MS JDBC 驱动程序 (sqljdbc4.jar) 连接到 Azure SQL DB,但我不断收到以下错误:
“错误连接:驱动程序无法使用安全套接字层 (SSL) 加密建立与 SQL Server 的安全连接。错误:“套接字已关闭”。”
我可以使用与 squirrel 相同的连接字符串连接到数据库。
我使用的是 android studio 2.1.3,但我真的束手无策...... 这是代码:
DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String username = "<>";
String password = "<>";
java.sql.Connection DbConn = DriverManager.getConnection("jdbc:sqlserver://<myserver>:1433;databaseName=thumbsupp;user=" + username + ";password=" + password + ";encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;");
我什至尝试在代码中打开端口 1433 上的套接字:
SocketFactory sf = SSLSocketFactory.getDefault();
SSLSocket socket = (SSLSocket) sf.createSocket("<myserver>", 1433);
HostnameVerifier hverify = HttpsURLConnection.getDefaultHostnameVerifier();
SSLSession ssoc = socket.getSession();
虽然我打电话时得到true,但并没有占上风
hverify.verify();
我是否缺少 Android Studio 中的一些配置?
编辑:如果检查套接字上启用的协议:
socket.getEnabledProtocols();
我得到的唯一协议是 TLS1.0、TLS1.1 和 TLS1.2 ??
【问题讨论】:
标签: android azure jdbc mssql-jdbc