是否可以使用自签名证书在不同的机器上进行测试?

时间:2015-03-11 09:03:03

标签: c# ssl tcp ssl-certificate sslstream

我为测试目的创建了自签名证书。 我用过这篇文章: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拥有所有应用程序策略

1 个答案:

答案 0 :(得分:2)

它也可以在其他机器上运行。要检查的事项:

  1. 您是否在新客户端计算机上将RootCATest.cer导入计算机商店的受信任的根证书颁发机构?
  2. 服务器名称(AuthenticateAsClient()中的第一个参数 - 在您的示例"testName"中)是否等于服务器证书主题中的CN?
  3. 更新: 它也可以在其他计算机上运行,​​但您必须将自签名的根CA证书导入其受信任的根证书颁发机构存储。默认情况下,客户端不信任您的自定义CA证书。如果您从受信任的CA订购证书,则不必在客户端上导入任何内容,因为他们的CA已经存在。在向您颁发SSL证书之前,受信任的CA会进行一些检查(如果您是域的所有者等)。