在 C# 中,在服务器端使用 SslStream.AuthenticateAsServer() 有什么意义?
In C# what is the point of using SslStream.AuthenticateAsServer() on the server side?
我正在尝试侦听端口上的安全 TCP 连接。我正在浏览 Microsoft 文档上的服务器代码示例。我粘贴在这里以供快速参考:
static void ProcessClient (TcpClient client)
{
// A client has connected. Create the
// SslStream using the client's network stream.
SslStream sslStream = new SslStream(
client.GetStream(), false);
// Authenticate the server but don't require the client to authenticate.
try
{
sslStream.AuthenticateAsServer(serverCertificate, clientCertificateRequired: false, checkCertificateRevocation: true);
// Display the properties and settings for the authenticated stream.
DisplaySecurityLevel(sslStream);
DisplaySecurityServices(sslStream);
DisplayCertificateInformation(sslStream);
DisplayStreamProperties(sslStream);
我的疑问是为什么服务器要对自己进行身份验证?或者我在这里遗漏了什么。
也许您漏掉了“As”。该调用告诉 SslStream 它应该为 TLS 握手(发生身份验证的地方)做准备,并且它在握手中扮演服务器角色。
所以它真的是“开始身份验证阶段,作为服务器”。
我正在尝试侦听端口上的安全 TCP 连接。我正在浏览 Microsoft 文档上的服务器代码示例。我粘贴在这里以供快速参考:
static void ProcessClient (TcpClient client)
{
// A client has connected. Create the
// SslStream using the client's network stream.
SslStream sslStream = new SslStream(
client.GetStream(), false);
// Authenticate the server but don't require the client to authenticate.
try
{
sslStream.AuthenticateAsServer(serverCertificate, clientCertificateRequired: false, checkCertificateRevocation: true);
// Display the properties and settings for the authenticated stream.
DisplaySecurityLevel(sslStream);
DisplaySecurityServices(sslStream);
DisplayCertificateInformation(sslStream);
DisplayStreamProperties(sslStream);
我的疑问是为什么服务器要对自己进行身份验证?或者我在这里遗漏了什么。
也许您漏掉了“As”。该调用告诉 SslStream 它应该为 TLS 握手(发生身份验证的地方)做准备,并且它在握手中扮演服务器角色。
所以它真的是“开始身份验证阶段,作为服务器”。