我想我和这个人有同样的问题,但我没有他/她那么幸运,因为提供的解决方案对我不起作用。
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
提供的解决方案在(不在子目录中)和(和子目录)上查找文件C:\Users\[Username]\AppData\Roaming\Microsoft\Crypto\RSA
但是,由于我希望安装程序将应用程序安装到所有用户,自定义操作在SYSTEM
-User 下运行,这导致文件被实际创建在C:\ProgramData\Application Data\Microsoft\Crypto\RSA\S-1-5-18
.
当以管理员身份运行“普通”应用程序(右键单击 -> 以管理员身份运行)执行完全相同的代码时,会在C:\Users\[Username]\AppData\Roaming\Microsoft\Crypto\RSA\S-1-5-21-1154405193-2177794320-4133247715-1000
.
使用 WIX 自定义操作生成的证书似乎没有私钥(“密钥集不存在”),而“正常”应用程序生成的证书却有。
查看文件的权限时,它们似乎没问题,即使它们不同(工作的确实包括SYSTEM
用户),即使在将文件添加SYSTEM
到(“非工作”)文件之后我也无法阅读私钥,这里同样的错误。
然后我使用FindPrivateKey util 查找相应的文件,但我得到的只是"Unable to obtain private key file name"
.
好的,这是怎么回事?Windows 在哪里存储用户存储的证书的私钥SYSTEM
?也许没有创建任何私钥文件?为什么?