Windows MMC 证书管理单元允许管理员使用“服务帐户”,但服务如何访问这些证书?

如果我使用“服务帐户”以管理员身份导入到 Personal,并且我以标准用户身份运行的服务使用 System.Security.Cryptography.X509Certificates.X509Store 在 StoreLocation.CurrentUser(或 StoreLocation.LocalMachine)中查找,则找不到证书.

相反,如果我以服务帐户登录并将证书从该标准用户帐户导入到 Personal,则该服务会找到该证书。

管理单元将“服务帐户”的证书放在哪里,服务如何使用 .NET 类找到它?

最佳答案

证书存储在 HKLM 下的注册表中。例如,如果服务名称是 MYSERVICE,那么个人商店证书在这里:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Services\MYSERVICE\SystemCertificates\My\Certificates]

此 MSDN 页面有更多详细信息:System Store Locations

我没有看到私钥保存在哪里——也许在 blob 数据中。要从 .NET 访问这家商店,我必须 P/Invoke(参见 here 。)

我不打算使用“服务帐户”,所以我没有进一步寻找。

10-07 20:01
查看更多