通过TCP进行C#服务的SSL认证

时间:2015-04-21 12:20:20

标签: c# ssl windows-services certificate x509

我有2个服务器端(虚拟)程序,它们创建一个TCP服务器(TCPListener),然后尝试使用X509证书(BeginAuthenticateAsServer)对服务器进行身份验证。 客户端程序准备就绪。

两个服务器端程序之间的区别在于其中一个是简单的控制台应用程序,而另一个是Windows服务。

由于某种原因,客户端可以连接到控制台应用程序,但不能连接到服务。两个项目的设计都是一样的。

我使用以下行描述我将使用的证书:

serverCertificate = new X509Certificate( "C:\\Users\\Tom\\workspace\\ServerSSL.cer", "12345678" );

我认为有关服务计划特权的事情很可疑,但在过去几天我无法理解。当然,我有The server mode SSL must use a certificate with the associated private key.错误。当我尝试搜索答案作为帮助时,我得到了IIS / webservices主题的结果,但我使用的是简单的Windows 7 Pro。

我可以请你帮忙吗?

1 个答案:

答案 0 :(得分:0)

文件ServerSSL.cer最有可能只包含证书,而不包含私钥。这就是错误消息告诉你的。

尝试查找pfxp12文件。或者,如果您有包含私钥的单独文件(即.key),则需要从它们(.key和.cer)制作pfx(p12)文件。您可以使用opensslxca来执行此操作。