【问题标题】:Setting Private Key permissions for a Certificate in Win Server 2008在 Win Server 2008 中设置证书的私钥权限
【发布时间】:2012-05-08 20:11:30
【问题描述】:

在 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

【问题讨论】:

    标签: permissions certificate windows-server-2008 makecert


    【解决方案1】:

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

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

    winhttpcertcfg.exe -g -c LOCAL_MACHINE\TrustedPeople -s MyCert01 -a "NETWORK SERVICE"
    

    【讨论】:

    • 警告:winhttpcertcfg 的“-s”参数是不区分大小写的 substring 搜索证书的“主题”名称,-g 仅授予 第一个找到的证书。如果您有两个证书而一个没有足够具体的主题名称,这将是一个问题。例如:如果第一个证书有“主题:CN = ABC,O = MyCompany”,而第二个证书有“主题:CN = MyCompany”,那么就没有办法找到第二个证书......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    相关资源
    最近更新 更多