尝试设置SslStream
时,该示例在客户端中有一个调用:
sslStream.AuthenticateAsClient(targetHost);
对于AuthenticateAsClient
,文档说明“The value specified for targetHost must match the name on the server's certificate.
”
如何找到x509证书的targetHost
?
答案 0 :(得分:2)
规则因协议而略有不同。在RFC 6125: Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)中已经进行了跨协议的协调工作。
这就是说,RFC 6125指南(适用于任何使用SSL / TLS的协议)与HTTPS的指令大致相同,后者在RFC 2818 (HTTP over TLS), Section 3.1中定义。
简而言之,如果证书具有DNS类型的主题备用名称(SAN)扩展名,则其中一个必须是您尝试连接的目标主机名。如果没有此类扩展,您必须查看证书的主题DN并找到公用名(CN)RDN:它必须与目标主机名匹配。
答案 1 :(得分:0)
我不是这个领域的专家,但我建议targetHost
是服务器的名称,并且您的X509Certificate需要是为验证您的服务器而颁发的证书。在这种情况下,它将是证书的Subject property。