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

Ton*_*nyM 5 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(ValidateServerCertificate);

    using (stream = new SslStream(client.GetStream(), false, callback))
    {
        stream.AuthenticateAsClient(Hostname);
    }
}
Run Code Online (Sandbox Code Playgroud)

SQL Server 客户端是否必须使用一些初始协商才能使服务器切换到 SSL?换句话说,SQL Server 是否执行类似于 STARTTLS 与 SMTP 配合使用的操作?

我需要对上面的代码执行什么操作才能让 SQL Server 返回其证书?

Cha*_*arr 0

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

从 sys.dm_exec_connections 中选择 session_id、加密选项

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

祝你好运,请告诉我是否有帮助。