WCF分布式开发常见错误(25)2011-06-18 博客园 Frank Xu LeiWCF分布式开发常见错误(25):The certificate "CN=WCFHTTPS" must have a private key that is capable of key exchange在准备WCF安全开发实践编程系列文章的时候,制作证书出现这个问题。The certificate "CN=WCFHTTPS" must have a private key that is capable of key exchange. The process must have access rights for the private key.证书必须有一个可以交换密钥的私钥,进程必须有访问私钥的权限。【1】原因分析:就是证书访问权限导致的问题,其次就是证书是否有密钥,因为要使用密钥来解密消息。而且这个证书要安装受信任的机构里。证书没有一个可以交换的私钥,我们需要重新制作证书。类型是exchange.【2】类似问题:国内外也有很多网友遇到这个问题有可能有办这个的参考文章:http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/8e1c3feb-56de-4366-8af5-3d526d4f4ce1/http://social.msdn.microsoft.com/forums/en-US/wcf/thread/ac4a69d1-af3e-495c-8068-cb25ad0bb146/http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/b1369589-5207-4438-bcb8-2cade616bc0e【3】解决办法:在Visual Studio 命令行工具里启动命令行窗口,输入以下命令:1.制作一个证书。制作证书:makecert -sr localmachine -ss My -n CN=MyServerCer -sky exchange -pe -r。http://msdn.microsoft.com/zh-cn/library/aa702761.aspxexchange 表示密钥可以导入。2.导出证书文件,带密钥的pfx文件。使用mmc3.导入证书到信任的人。4.导入证书到信任的机构,这个证书就被信任了。这个问题WCF安全开发过程中会遇到,大家多注意。参考文章:http://social.microsoft.com/Forums/zh-CN/wcfzhchs/thread/857f4257-8f43-4c7d-baa6-d2cabba36372