私はAndroidアプリ開発に慣れていません。ネイティブMS JDBCドライバ(sqljdbc4.jar)を使用してAzure SQL DBに接続しようとしています。次のエラーが発生しました:ms jdbc経由でAzure SQL DBに接続中にアプリケーションエラーが発生しました
"エラー接続:ドライバがSecure Sockets Layer(SSL)暗号化を使用してSQL Serverへの安全な接続を確立できませんでした。
リスで同じ接続文字列でDBに接続できます。私もコードにポート1433でソケットを開こうとした
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;");
:
iはアンドロイドスタジオ2.1.3を使用して、私は私の知恵の最後に本当に思います...ここ はコードです:
SocketFactory sf = SSLSocketFactory.getDefault();
SSLSocket socket = (SSLSocket) sf.createSocket("<myserver>", 1433);
HostnameVerifier hverify = HttpsURLConnection.getDefaultHostnameVerifier();
SSLSession ssoc = socket.getSession();
しかし、誰に、私はtrue
を得るものの、勝つ
hverify.verify();
Android Studioからいくつかの設定が欠けていますか?
編集:ソケット上で有効なプロトコルを確認した場合:私はTLS1.0、TLS1.1及びTLS1.2である取り戻す
socket.getEnabledProtocols();
プロトコルのみ?