【发布时间】:2010-11-15 01:30:58
【问题描述】:
我有一个与我的 WCF 服务一起使用的服务器证书。
但是,当我运行网络服务时,我似乎遇到了权限问题。
[ArgumentException:证书“CN=S80”必须具有能够进行密钥交换的私钥。该进程必须具有私钥的访问权限。]
有什么想法吗?
【问题讨论】:
标签: .net wcf certificate
我有一个与我的 WCF 服务一起使用的服务器证书。
但是,当我运行网络服务时,我似乎遇到了权限问题。
[ArgumentException:证书“CN=S80”必须具有能够进行密钥交换的私钥。该进程必须具有私钥的访问权限。]
有什么想法吗?
【问题讨论】:
标签: .net wcf certificate
winhttpcertcfg -g -c LOCAL_MACHINE\MY -s mycert -a "Network Service"
【讨论】:
假设您拥有完整的公钥/私钥对,但您尚未授予对运行 WCF 服务的进程的证书私钥的访问权限。
现在,您如何执行此操作取决于您的操作系统版本和托管服务的方式,但this article 提供了适用于 XP 和 Windows 2003 的说明。
对于 Windows 2008/Vista/Win7,此过程稍微容易一些。启动 MMC 并添加证书管理单元,为您的 SSL 证书选择正确的容器所有者。找到证书(它可能在个人存储中),右键单击它并选择所有任务 > 管理私钥。向托管您的服务的用户授予对私钥的读取权限。
【讨论】: