(免责声明:我已经在 StackOverflow 上发布了这个问题,但从开发人员的角度来看。我试图重写这个问题以适应 ServerFault 条件)
自定义服务必须通过 HTTPS 连接登录远程服务器,因此需要使用 SSL 证书 (Windows 2008 Server SP2)。
我按照Microsoft 的说明使用 MMC 为服务帐户安装证书。该证书(自签名)安装在受信任的根证书颁发机构证书存储中。所以我添加了一个证书管理单元,为服务帐户添加了证书。然后我将控制台文件保存在某个地方,但我不知道它是否有用(我想这些更改会立即生效?)。
证书在注册表中可见(<ServiceName>
是服务的名称):
HKLM\SOFTWARE\Microsoft\Cryptography\ Services\<ServiceName>\SystemCertificates\Root\Certificates\<digitalFootprint>
但是,该服务找不到证书(假定存储的类型为 X509)。
在尝试使用certmgr.msc为用户安装证书时,我遇到了类似的问题。我必须以用户身份登录,通过Internet Explorer安装它以使其工作。
我错过了什么?
感谢Crypt32在此问题的StackOverflow 版本中的回答,问题是由于 .NET Api 限制:它“不支持在服务帐户存储中查找证书。”。