我为测试目的创建了自签名证书。 我用过这篇文章:SSLStream example - how do I get certificates that work? 我在这样的客户端上使用代码。
AuthenticateAsClient("testName", null, SslProtocols.Default, false);
并在服务器上:
BeginAuthenticateAsServer(certificate, false, SslProtocols.Default, false, EndAuthenticate, obj);
如果我在同一台机器上启动证书就可以了。但是当我在其他机器上移动客户端时,我得到了RemoteCertificateChainErrors。
有人知道我应该使用一些“真正的”证书吗?或者我应该为我的当前添加一些选项?
PS:Cer拥有所有申请政策,所有发行政策 Pfx拥有所有应用程序策略
答案 0 :(得分:2)
它也可以在其他机器上运行。要检查的事项:
AuthenticateAsClient()
中的第一个参数 - 在您的示例"testName"
中)是否等于服务器证书主题中的CN?更新: 它也可以在其他计算机上运行,但您必须将自签名的根CA证书导入其受信任的根证书颁发机构存储。默认情况下,客户端不信任您的自定义CA证书。如果您从受信任的CA订购证书,则不必在客户端上导入任何内容,因为他们的CA已经存在。在向您颁发SSL证书之前,受信任的CA会进行一些检查(如果您是域的所有者等)。