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 。)
我不打算使用“服务帐户”,所以我没有进一步寻找。