Permissions 在Win Server 2008中设置证书的私钥权限

Permissions 在Win Server 2008中设置证书的私钥权限,permissions,certificate,windows-server-2008,makecert,Permissions,Certificate,Windows Server 2008,Makecert,在Windows Server 2003上使用makecert创建证书时,我必须设置私钥的权限,以便网络服务可以访问该私钥,以便WCF服务可以读取该私钥。我可以通过导航到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys来访问该文件。一旦我为网络服务设置了读取权限,一切正常 我正在查看Windows Server 2008,在C:\Users或其他任何地方都找不到类似的位置。设

在Windows Server 2003上使用makecert创建证书时,我必须设置私钥的权限,以便网络服务可以访问该私钥,以便WCF服务可以读取该私钥。我可以通过导航到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys来访问该文件。一旦我为网络服务设置了读取权限,一切正常


我正在查看Windows Server 2008,在C:\Users或其他任何地方都找不到类似的位置。设置私钥权限的正确机制是什么?他们在哪里?我正在使用makecert将其直接安装到TrustedPeople/localmachine上

看起来这里要使用的工具是。这是在证书私钥上设置权限的比我上面描述的方法更简洁的方法。我的猜测是,在Windows 2008及以后的版本中,微软决定将钥匙隐藏在一个更离散的位置

我使用WinHttpCertCfg设置权限。下面是一个示例命令,用于为本地\u MACHINE\TrustedPeople中名为MyCert01的证书向网络服务授予读取权限

winhttpcertcfg.exe -g -c LOCAL_MACHINE\TrustedPeople -s MyCert01 -a "NETWORK SERVICE"
警告:winhttpcertcfg的“-s”参数是对证书“Subject”名称的不区分大小写的子字符串搜索,-g仅授予找到的第一个证书。这是一个问题,如果你有两个证书,一个没有一个足够具体的主题名称。例如:如果第一个证书有“Subject:CN=ABC,O=MyCompany”,而第二个证书有“Subject:CN=MyCompany”,则无法找到第二个证书。。。