我有一项服务,以“网络服务”权限运行,将证书安装到“网络服务”的“个人证书库”中。
由于超出此问题范围的原因,我需要删除该证书,但使用 MMC 的“证书”管理单元我找不到该证书。我尝试打开“服务”->“本地计算机”->“服务名称”的证书存储区,但那里什么也没有,而服务肯定报告它看到了证书。
知道如何访问该个人证书存储吗?
我有一项服务,以“网络服务”权限运行,将证书安装到“网络服务”的“个人证书库”中。
由于超出此问题范围的原因,我需要删除该证书,但使用 MMC 的“证书”管理单元我找不到该证书。我尝试打开“服务”->“本地计算机”->“服务名称”的证书存储区,但那里什么也没有,而服务肯定报告它看到了证书。
知道如何访问该个人证书存储吗?
注册表编辑器。
HKEY_USERS\S-1-5-20\Software\Microsoft\SystemCertificates\My
S-1-5-20 是网络服务帐户。“我的”代表个人商店。
从那里删除条目。
来源: http: //support.microsoft.com/kb/185059
您不必弄乱注册表,请参阅:How do you install a certificate in a PFX file into the personal container of the NT-AUTHORITY\NetworkService? 它正在谈论安装,但没有什么能阻止您删除证书。
使用 Microsoft / sysinternals 的 psexec 实用程序对我有用。
下载 psexec。https://docs.microsoft.com/en-us/sysinternals/downloads/pstools
使用将作为 NETWORK SERVICE 运行的 psexec 打开一个新控制台:
.\PsExec64.exe -i -u "nt authority\network service" powershell
运行 mmc
为证书添加管理单元并使用“我的用户帐户”中的证书
对这个帐户的个人证书做任何你想做的事
现在所有个人证书都应该对 NETWORK SERVICE 可见。
这至少是我运行工具 mage.exe 所必需的,该工具很难在 NETWORK SERVICE 帐户下进行代码签名,因为它仅使用个人证书。