我有一个使用我的WCF服务的服务器证书。
然而,当我运行web服务时,我似乎有权限问题。
[ArgumentException:证书'CN = S80'必须有一个能够进行密钥交换的私钥。该进程必须具有私钥的访问权限。]
有什么想法吗?
答案 0 :(得分:18)
假设您拥有完整的公钥/私钥对,则您未授予对运行WCF服务的流程的证书私钥的访问权限。
现在,如何执行此操作取决于您的操作系统版本以及您如何托管服务,但this article提供了适用于XP和Windows 2003的说明。
对于Windows 2008 / Vista / Win7,这个过程稍微容易一些。启动MMC并添加证书管理单元,为您的SSL证书选择正确的容器所有者。找到证书(可能在个人商店中),右键单击它并选择所有任务>管理私钥。授予对托管服务的用户的私钥的读访问权。
答案 1 :(得分:2)
winhttpcertcfg -g -c LOCAL_MACHINE\MY -s mycert -a "Network Service"