在准备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
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
本文转自 frankxulei 51CTO博客,原文链接:http://blog.51cto.com/frankxulei/320958,如需转载请自行联系原作者