C# 通过SSL连接到SQL Server并获取服务器证书

C# 通过SSL连接到SQL Server并获取服务器证书,c#,sql-server,ssl,C#,Sql Server,Ssl,我想连接到端口1433上为SSL配置的SQL Server并获取其证书。我不需要执行任何SQL操作,我只想设置SSL连接并获取SQL Server的证书 以下代码可以获取web服务器证书,但无法获取SQL server证书-连接在超时后失败 using (client = new TcpClient()) { client.Connect(Hostname, Port); var callback = new RemoteCertificateValidationCallback

我想连接到端口1433上为SSL配置的SQL Server并获取其证书。我不需要执行任何SQL操作,我只想设置SSL连接并获取SQL Server的证书

以下代码可以获取web服务器证书,但无法获取SQL server证书-连接在超时后失败

using (client = new TcpClient())
{
    client.Connect(Hostname, Port);
    var callback = new RemoteCertificateValidationCallback(ValidateServerCertificate);

    using (stream = new SslStream(client.GetStream(), false, callback))
    {
        stream.AuthenticateAsClient(Hostname);
    }
}
SQL Server客户端是否必须使用一些初始协商才能让服务器切换到SSL?换句话说,SQL Server是否与STARTTLS与SMTP的工作方式类似


要让SQL Server返回其证书,我必须对上述代码执行什么操作?

要快速检查SQL Server上是否配置了SSL,可以运行以下操作:

选择会话\u id、加密\u选项 从sys.dm_exec_连接

您还可以强制SQL Server使用加密标志。您可以在SQLServer配置管理器中执行此操作


祝你好运,让我知道这是否有用。

研究FreeTDS的实现。在这个代码示例中,你在哪里指定端口是1433?@ErikPhilips我假设他的
port
变量设置在示例代码的范围之外。它现在在那里,在一些编辑过程中丢失了。嗨,这是自签名证书吗?