您的位置:首页 > 理论基础 > 计算机网络

WCF分布式开发常见错误(25):The certificate 'CN=WCFHTTPS' must have a private key that is capable of key exchange

2009-09-01 23:14 721 查看
Posted on 2009-09-01 23:06 Frank Xu Lei 阅读(229) 评论(2)  编辑 收藏 网摘 所属分类: SOA and EAI, WCF分布式开发常见错误



   在准备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】类似问题:
    国内外也有很多网友遇到这个问题:
 

The certificate 'CN=tempCert' must have a private key that is capable ...

The certificate 'CN=localhost' must have a private key that is capable ...

access rights for the private key

ServiceCertificate - Private Key & Permissions

Service hosted in IIS 7 using net.msmq binding (WAS) - can't open ...   

有可能有办这个的参考文章: 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.aspx
 exchange 表示密钥可以导入。
2.导出证书文件,带密钥的pfx文件。使用mmc
3.导入证书到信任的人。
4.导入证书到信任的机构,这个证书就被信任了。

   这个问题WCF安全开发过程中会遇到,大家多注意。
 参考文章:

1.http://social.microsoft.com/Forums/zh-CN/wcfzhchs/thread/857f4257-8f43-4c7d-baa6-d2cabba36372

老徐的博客
【作      者】:Frank Xu Lei
【地      址】:http://www.cnblogs.com/frank_xl/
【中文论坛】:微软WCF中文技术论坛
【英文论坛】:微软WCF英文技术论坛
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐