3

在 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

4

1 回答 1

4

看起来这里使用的工具是WinHttpCertCfg.exe。与我上面描述的方法相比,这是在证书私钥上设置权限的更简洁的方法。我的猜测是,在 Windows 2008 及更高版本中,MS 决定将键隐藏在更离散的位置。

我使用 WinHttpCertCfg 来设置权限。下面是一个示例命令,用于授予 NETWORK SERVICE 对 LOCAL_MACHINE\TrustedPeople 中名为 MyCert01 的证书的读取权限。

winhttpcertcfg.exe -g -c LOCAL_MACHINE\TrustedPeople -s MyCert01 -a "NETWORK SERVICE"
于 2012-05-10T13:06:43.237 回答