Search code examples
sql-serverliquibase

The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption in liquibase


I'm using Liquibase (www.liquibase.org) to handle database migration or changes. However, I'm stumbling on the first hurdle: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption « The server selected protocol version TLS10 is not accepted by client preferences [TLS13,TLS12] ».

I'm looking at the quick start tutorial on the liquibase site, but swapping mysql for sql server DB

I run this command:

liquibase --changelog-file=dbchangelog.xml generate-changelog

and my liquibase.proprties is : [enter image description here][1]

classpath :sqljdbc_10.2\\fra\\sqljdbc4.jar
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://localhost:1433;databaseName=database;integratedSecurity=true;sslProtocol=TLSv1.2
username=sa
password=sapassword
changeLogFile=C:\\Temp\\ChangeLog.xml

the version of SQL I'm using

Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64)   Jun 17 2011 00:54:03   Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) 

Solution

  • That version is too old to support TLS 1.2. If your client won't support older cypher suites, and you need to use an encrypted connection, then you'll need to patch the SQL Server to support TLS 1.2.

    In your case you would apply Service Pack 3 and then ths update SQL Server 2008 R2 SP3 – KB4057113.

    As outlined here: KB3135244 - TLS 1.2 support for Microsoft SQL Server