Erro na conexão com Eclipse(Java) e Banco de Dados SQLServer

Caros amigos.
Estou criando um simples programa que ira consultar algumas informações no banco de dados SQL Server.
Estou usando a IDE Eclipse (Eclipse IDE for Enterprise Java and Web Developers) com o JDBC (mssql-jdbc-12.4.2.jre11).
Eu criei um arquivo no projeto (db.properties) com as seguintes informações:

user=******
password=l*****
dburl=jdbc:sqlserver://localhost:1433;databaseName=dblinx;
useSSL=false

Crie um class que é responsavel pela conexão e utilizando este arquivo como parâmetro:

public class Db {

	private static Connection conn = null;
	
	
	public static Connection getconnection() {
		if(conn == null) {
			try {
				Properties props = loadProperties();
				String url = props.getProperty("dburl");
				conn = DriverManager.getConnection(url, props);
			}
			catch (SQLException e) {
				throw new DbException(e.getMessage());
			}
		}
		return conn;
	}
	
	public static void closeConnection() {
		if (conn != null) {
			try {
			conn.close();
			}
			catch (SQLException e) {
				throw new DbException(e.getMessage());
			}
		}
	}
	
	private static Properties loadProperties() {
		
		try(FileInputStream fs = new FileInputStream("db.properties")){
			Properties props = new Properties();
			props.load(fs);
			return props;
		}
		catch (IOException e) {
			throw new DbException(e.getMessage());
		}
	}
	
}

Porém estou tendo o seguinte retorno:

Exception in thread “main” dbconection.DbException: A propriedade “encrypt” está definida como “true” e a propriedade “trustServerCertificate” está definida como “false”, mas o driver não pôde estabelecer uma conexão segura com o SQL Server usando a criptografia do protocolo SSL (SSL): Erro: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]. ClientConnectionId:fe3fe41e-ae48-4a8b-9926-1ea013d45795

  • at dbconection.Db.getconnection(Db.java:23)*
  • at application.Program.main(Program.java:11)*

O que posso fazer para ajustar isso?

Em princípio você precisa:
1 - Localizar o arquivo java.security no seu JDK;
2 - Dentro desse arquivo encontrar a chave jdk.tls.disabledAlgorithms e apagar o valor TLSv1;
3 - Verificar se a chave deployment.security.TLSv1 está com o valor true.

Bom dia @staroski , tudo bem?

Eu consegui realizar a orientação 1 e 2 , mais a 3 não localizo essa chave deployment.security.TLSv1.

Me desculpe até não conseguiu localizar de primeira, mais sou novo em desenvolvimento.

Se ela não existe no arquivo, você pode declarar:

deployment.security.TLSv1=true

Essas configurações não estão no seu arquivo pois esse protocolo foi desabilitado por padrão a partir do Java 9 se não me engano.

@staroski Muito obrigado, parece que resolver…

1 curtida