我有一项服务,以“网络服务”权限运行,该权限将证书安装到“网络服务”的“个人证书存储”中。
由于超出此问题范围的原因,我需要删除该证书,但使用 MMC 的“证书”管理单元时,我找不到该证书。我尝试打开“服务”->“本地计算机”->“服务名称”的证书存储,但那里什么也没有,而服务确实报告它看到了该证书。
知道如何访问个人证书存储吗?
答案1
注册表编辑器。
HKEY_USERS\S-1-5-20\Software\Microsoft\SystemCertificates\My
S-1-5-20 是网络服务帐户。“My”代表个人存储。
从那里删除条目。
答案2
您不必弄乱注册表,请参阅:如何将 PFX 文件中的证书安装到 NT-AUTHORITY\NetworkService 的个人容器中? 它正在谈论安装,但没有什么可以阻止您删除证书。
答案3
使用 Microsoft/sysinternals 的 psexec 实用程序对我来说很有帮助。
下载 psexec。https://docs.microsoft.com/en-us/sysinternals/downloads/pstools
使用 psexec 打开一个以网络服务形式运行的新控制台:
.\PsExec64.exe -i -u “nt 权限\网络服务” powershell
运行 mmc
添加证书管理单元并使用“我的用户帐户”中的证书
用此帐户的个人证书做任何你想做的事情
现在所有个人证书都应该对网络服务可见。
这至少对于我运行工具 mage.exe 来说是必要的,因为它只使用个人证书,所以很难在 NETWORK SERVICE 帐户下进行代码签名。