【发布时间】:2014-10-19 22:53:15
【问题描述】:
在 C# 中,我创建了一个到服务器的 SSL 连接,如下所示:
var hostname = "www.example.com";
var client = new TcpClient(hostname, 443);
var sslStream = new SslStream(client.GetStream());
sslStream.AuthenticateAsClient(hostname);
在没有抛出异常的情况下完成上述操作后,我知道服务器证书已经过验证并且主机名与主题完全匹配。该主题可通过属性sslStream.RemoteCertificate.Subject 访问,该属性是 DN 格式的字符串,类似于
CN=www.example.com, O=Example Inc, L=New York, S=New York, C=US
或
CN=*.example.com, OU=Certificate Authority Validated
出于深奥的原因,我想针对同一个证书主题验证另一个字符串(另一个主机名)。如何正确验证特定主机名是否与证书主题匹配?
【问题讨论】:
标签: c# validation ssl x509certificate