通过创建证书来保护WCF服务通信

时间:2013-06-12 14:23:30

标签: c# wcf security

我有一个Windows服务,由Windows窗体程序通过WCF控制。 目前没有启用安全性,所以每个人都可以嗅探Windows服务和Windows窗体程序之间的通信。

现在我想确保通信安全,所以我必须使用证书。 但我不想为服务提供全局证书,因为服务和监控程序由客户运行。

所以我的问题是:

在客户端计算机上安装时创建自签名证书以用于wcf是一个很好的解决方案吗?

有没有办法在c#中创建自签名证书?我发现的唯一解决方案是使用MakeCert或调用CertEnroll.dll。

2 个答案:

答案 0 :(得分:1)

是的,您可以使用MakeCert创建自签名证书。通过-r on命令参数。

问题在于,应使用自签名证书来创建客户端证书和服务证书。

在客户端计算机中,您应该已经安装: - 带公钥的服务证书(可信) - 包含公钥和私钥的客户证书(个人) - 带公钥的自签名证书(受信任的权威机构)

在服务机器中: - 带公钥的客户证书(可信) - 包含公钥和私钥的服务证书(个人) - 带公钥的自签名证书(受信任的权威机构)

然后,您应该配置wcf服务和wcf客户端以启用传输和消息的安全性,并且还必须指定使用私钥查找证书的位置。

答案 1 :(得分:0)

您是否考虑过使用X509证书?

请参阅此链接

How to create a self-signed certificate using C#?

希望这有帮助

巴兹