I have a .NET Core console application that connects to a SQL Server database. The application works fine on Windows, but I'm encountering an SSL/TLS handshake failure when running it on an Ubuntu 22.04 LTS VM
class Program
{
static void Main()
{
var connectionString = "Data Source=DB*****;Initial Catalog=efdfdApi;User Id=useridd;Password=*****;Connect Timeout=30;Encrypt=false;TrustServerCertificate=true;Application Intent=ReadWrite;MultiSubnetFailover=false";
try
{
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("Connection successful!");
}
}
catch (Exception ex)
{
Console.WriteLine($"Connection failed: {ex.Message}");
}
}
}
Issue: When I execute dotnet TestConnection.dll on my Ubuntu VM, I get the following error:
Connection failed: A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed)
**I tried these
**
sudo apt-get update
sudo apt-get install -y libssl-dev ca-certificates libkrb5-dev
|sudo apt-get install openssl
sudo apt-get update
sudo apt-get install -y libssl-dev ca-certificates libkrb5-dev
sudo apt-get install ca-certificates
Additional Information:
- I've verified that the connection string is correct and works on Windows.
- I suspect there might be SSL/TLS configuration differences between Windows and Ubuntu that I need to address.
- <PackageReference Include="Microsoft.Data.SqlClient" Version="5.2.1" />
What steps should I take to troubleshoot and resolve this SSL/TLS handshake failure when connecting to SQL Server from .NET Core on Ubuntu?