在 Windows Server 2003 上使用 makecert 创建证书时,我必须将私钥的权限设置为 NETWORK SERVICE 可以访问,以便 WCF 服务可以读取私钥。我可以通过导航到 C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys 来访问该文件。为 NETWORK SERVICE 设置读取权限后,一切正常。
我正在查看 Windows Server 2008,但在 C:\Users 或其他任何地方都找不到类似的位置。设置私钥权限的正确机制是什么?他们位于哪里?我正在使用 makecert 直接将它安装到 TrustedPeople/localmachine
最佳答案
看起来这里使用的工具是 WinHttpCertCfg.exe .与我上面描述的方法相比,这是在证书私钥上设置权限的更简洁的方法。我的猜测是,在 Windows 2008 及更高版本中,MS 决定将 key 隐藏在更独立的位置。
我使用 WinHttpCertCfg 来设置权限。下面是一个示例命令,用于为 LOCAL_MACHINE\TrustedPeople 中名为 MyCert01 的证书向 NETWORK SERVICE 授予读取权限。
winhttpcertcfg.exe -g -c LOCAL_MACHINE\TrustedPeople -s MyCert01 -a "NETWORK SERVICE"
关于permissions - 在 Win Server 2008 中设置证书的私钥权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10505779/