Android 앱 개발에 익숙하며 원시 MS JDBC 드라이버 (sqljdbc4.jar)로 Azure SQL DB에 연결하려고합니다. 다음 오류 :ms jdbc를 통해 Azure SQL DB에 연결하는 중 Android 앱 오류가 발생했습니다.
"오류 연결 : 드라이버가 SSL (Secure Sockets Layer) 암호화를 사용하여 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;");
:
내가 안드로이드 스튜디오 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에서 일부 구성이 누락 되었습니까?
편집 : A는 소켓에 사용할 수있는 프로토콜을 확인하는 경우 : 내가 TLS1.0, TLS1.1과 TLS1.2이 돌아
socket.getEnabledProtocols();
유일한 프로토콜 ??