问题:
我们的服务使用合作伙伴服务调用的一项认证。它在作为网络服务帐户运行的 IIS 站点中运行良好。但是当我们以管理员(域帐户)运行测试代码时,服务调用总是会出现 403 错误(子状态代码为 7:需要证书)。
我们已经验证:
- 将调试器附加到我们发现站点在以域帐户运行时可以访问私钥的进程。
- 证书位于域帐户的 CURRENT_USER/MY 证书库中。并且证书授权链在证书存储中很好。此证书的特殊之处在于其根 CA 是公司内部 CA。但是 CA 已经在信任根中。
- 在IE中,如果我们直接访问一个https站点,这个证书是不在弹出列表中的。但它确实存在于 IE 选项-内容-证书-个人列表中。 (不确定这是否相关)
问题:
似乎证书的使用被某些安全设置(Windows 或某些公司域策略)阻止了,如何解决这个问题?欢迎任何想法。谢谢。
最佳答案
命令 certutil -store my
将尝试使用本地计算机\my 商店中的所有证书。它将列出有关已测试证书的信息。
可选地,命令 certutil -user -store my
将测试当前用户\my 存储中的证书。
尝试这两个命令,看看证书及其对应的私钥存储在什么存储中。 有关 certutil 的更多信息,请参阅文档 here .
关于wcf - 证书只能被网络服务账户使用,不能被域账户使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27751726/