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

Is possible to use self signed certificate for testing on different machines?

我出于测试目的创建了自签名证书。 我用这个 post: SSLStream example - how do I get certificates that work? 我在客户端使用这样的代码。

AuthenticateAsClient("testName", null, SslProtocols.Default, false);

在服务器上:

BeginAuthenticateAsServer(certificate, false, SslProtocols.Default, false, EndAuthenticate, obj);

如果我在证书所在的同一台机器上启动就可以了。但是当我在其他机器上移动客户端时,我得到 RemoteCertificateChainErrors。

有人知道我应该使用一些 "real" 证书还是应该在当前的证书中添加一些选项?

PS: Cer has All application policies, All issue policies Pfx 拥有所有应用程序策略

它应该也可以在其他机器上工作。要检查的事项:

  1. 您是否在新客户端计算机上将 RootCATest.cer 导入计算机商店的受信任的根证书颁发机构?
  2. 服务器名称(AuthenticateAsClient() 中的第一个参数 - 在您的示例 "testName" 中)是否等于服务器证书主题中的 CN?

更新: 它也应该可以在其他机器上工作,但是您必须将自签名的根 CA 证书导入到其受信任的根证书颁发机构存储中。默认情况下,客户端不信任您的自定义 CA 证书。如果您从受信任的 CA 订购证书,则不必在客户端上导入任何内容,因为它们的 CA 已经存在。受信任的 CA 在向您颁发 SSL 证书之前会进行一些检查(如果您是域的所有者等)。