ポート1433でSSL用に構成されたSQLServerに接続し、その証明書を取得したいと思います。SQLを実行する必要はありません。SSL接続をセットアップしてSQLServerの証明書を取得したいだけです。
次のコードはWebサーバー証明書を取得できますが、SQLServer証明書を取得できません。タイムアウト期間が経過すると接続が失敗します。
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が証明書を返すようにするには、上記のコードに対して何をする必要がありますか?