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

C# 是否可以在不同的机器上使用自签名证书进行测试?,c#,ssl,tcp,ssl-certificate,sslstream,C#,Ssl,Tcp,Ssl Certificate,Sslstream,我为测试目的创建了自签名证书。 我用了这个帖子: 我在客户机上使用这样的代码 AuthenticateAsClient("testName", null, SslProtocols.Default, false); 和在服务器上: BeginAuthenticateAsServer(certificate, false, SslProtocols.Default, false, EndAuthenticate, obj); 如果我在同一台机器上启动证书,就可以了。但当我在另一台机器上移动客户

我为测试目的创建了自签名证书。 我用了这个帖子: 我在客户机上使用这样的代码

AuthenticateAsClient("testName", null, SslProtocols.Default, false);
和在服务器上:

BeginAuthenticateAsServer(certificate, false, SslProtocols.Default, false, EndAuthenticate, obj);
如果我在同一台机器上启动证书,就可以了。但当我在另一台机器上移动客户端时,我会收到RemoteCertificateChainErrors

有人知道我应该使用一些“真正的”证书,还是应该在我的当前证书中添加一些选项

PS:Cer拥有所有申请政策、所有发行政策
Pfx有所有的应用程序策略

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

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

    您好!第二步没问题!但是第一步有一些问题。我导入了可信的根cer和pfx,这就是为什么它在一台机器上工作。但是另一台机器没有任何东西!我认为它应该在没有任何客户端计算机的情况下工作!在现实世界中,服务器上只有一个证书。我的主要目标是模拟在没有客户端证书的情况下在客户端和服务器之间工作。是的,证书只在服务器端(没有客户端证书)。但客户端在SSL握手中验证服务器证书,并且必须颁发此证书,但必须颁发受信任的根CA证书。客户端计算机上的Windows在信任存储中有许多现成的CA证书,但没有您的RootCATest.cer。所以你必须把它导入那里才能工作。如果您从GoDaddy、GlobalSign等处订购SSL证书,则不必在客户端上导入任何内容。我是否理解正确?如果我换成普通证书,它就会工作。如果我使用自签名证书并希望将其放在其他计算机上,它会给我RemoteCertificateChainErrors?请你能把你的意见在回答我会接受的!