我有一个Windows服务,由Windows窗体程序通过WCF控制。 目前没有启用安全性,所以每个人都可以嗅探Windows服务和Windows窗体程序之间的通信。
现在我想确保通信安全,所以我必须使用证书。 但我不想为服务提供全局证书,因为服务和监控程序由客户运行。
所以我的问题是:
在客户端计算机上安装时创建自签名证书以用于wcf是一个很好的解决方案吗?
有没有办法在c#中创建自签名证书?我发现的唯一解决方案是使用MakeCert或调用CertEnroll.dll。
答案 0 :(得分:1)
是的,您可以使用MakeCert创建自签名证书。通过-r on命令参数。
问题在于,应使用自签名证书来创建客户端证书和服务证书。
在客户端计算机中,您应该已经安装: - 带公钥的服务证书(可信) - 包含公钥和私钥的客户证书(个人) - 带公钥的自签名证书(受信任的权威机构)
在服务机器中: - 带公钥的客户证书(可信) - 包含公钥和私钥的服务证书(个人) - 带公钥的自签名证书(受信任的权威机构)
然后,您应该配置wcf服务和wcf客户端以启用传输和消息的安全性,并且还必须指定使用私钥查找证书的位置。
答案 1 :(得分:0)