在我之前的部署环境中一切顺利运行之后,我已将我的网站移动到服务器2008 R2框...
我有一个支持Silverlight的wcf服务(在IIS中)调用另一个外部服务,但是我的wcf服务无法找到访问外部服务所需的证书。
证书CN=blahblah.com, OID.1.2.840.113549.1.9.2=MyName, OU=MyCompany, O=Provider Group
可能没有能够进行密钥交换的私钥,或者该进程可能没有私钥的访问权限。有关详细信息,请参阅内部异常。
我的网站(及其wcf服务)在自定义应用程序池下运行,我已添加该应用程序池帐户以访问证书。我已经通过winhttpcertcfg.exe工具的-l开关验证了此帐户的访问权限。
证书位于本地计算机 - 个人(我的),我的web.config文件与此匹配:
<clientCertificate findValue="blahblah.com" storeLocation="LocalMachine"
storeName="My" x509FindType="FindBySubjectName" />
我还使用了FindPrivateKey.exe
工具来发现私钥的文件路径(D:\Users\\myaccountname\AppData\Roaming\Microsoft\Crypto\RSA)
,并且我在此路径上给了“所有人”权限,但仍然没有运气。< / p>
使用ProcMon,我可以看到正在查询文件夹D:\Users\\theApplicationPoolAccount\AppData\Roaming\Microsoft\Crypto\RSA\
。当我调用我的服务以便查看当前用户时(这很奇怪)因为我的web.config明确指定在LocalMachine\My
中查找证书...
当我安装证书时,最初它进入CurrentUser\My
商店(我没有选择安装到LocalMachine\My
),但我可以将证书拖入LocalMachine\My
商店
有没有人有幸在Windows Server 2008中读取证书的私钥?