我在Windows 8 Server上使用了以下命令为我的WCF TCP解决方案生成客户端和服务证书:
makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=MyAppServer -sky exchange -pe
makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=MyAppClient -sky exchange –pe
安装证书,然后使用MMC将其移至TrustedPeople。然后我使用MMC将两个证书导出到文件,然后将这些证书安装在CurrentUser / TrustedPeople下的客户端计算机上。
在客户端查看MMC中的两个证书时,它说:
“无法保证此证书的完整性。证书可能已被伪造或可能已被更改”
我可以看到Root Agence和MyAppServier在主题上有一个交叉。
当我尝试连接到WCF服务(位于Windows 8 Server上)时,我将在客户端上收到以下异常:
使用以下搜索条件找不到X.509证书:StoreName'TrustedPeople',StoreLocation'InsturrentUser',FindType'FindBySubjectName',FindValue'MyAppClient'。
我已经仔细检查了CurrentUser下的受信任人员,他们到位了吗?
如果我从客户端计算机上运行所有这些(包括生成和安装证书),一切正常吗?我怀疑这些证书有些不对劲吗?
我需要证书才能进行测试,所以我没有任何“真正的”证书,但根据我的经验,它应该能够在服务上生成证书,然后在测试环境中使用它们吗?
那我在这里做错了什么?
答案 0 :(得分:1)
此链接解决了我的问题并解释了很多:http://robbincremers.me/2011/12/29/wcf-message-security-and-client-certificate-authentication-with-self-signed-certificates/
但是,这不会使用IIS7来生成证书。
答案 1 :(得分:0)
过去,当我无法获得证书时,我做过的一件事就是通过IIS 7 UI创建它们。 IIS会将其创建的证书放入计算机上的个人证书和可信用户中。
http://technet.microsoft.com/en-us/library/cc753127%28v=ws.10%29.aspx
祝你好运。