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

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。
1个回答

4

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

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

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

1
警告:winhttpcertcfg的“-s”参数是对证书的“Subject”名称进行不区分大小写的子字符串搜索,而“-g”仅授予找到的第一个证书。如果您有两个证书,其中一个没有足够特定的主题名称,则会出现问题。例如:如果第一个证书具有“Subject: CN = ABC,O = MyCompany”,而第二个证书具有“Subject: CN = MyCompany”,则无法找到第二个证书... - Peter McEvoy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接