ASP.net对根证书存储的权限
一般而言,您授予A证书的权限。我使用这种方法来查找自定义的证书和授予权限。如果您使用Verisign,Thawte等公共实体颁发的证书,这可能是不必要的。
FindPrivateKey.exe My LocalMachine –n "CN=<certificate issuer>"
...将在个人存储中的本地计算机上查找特定发卡机构的证书。
注:如果FindPrivateKey是不是你的本地计算机上, 下载WCF样本,包括FindPrivateKey工具,在 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21459
FindPrivateKey返回私钥证书的位置,类似
"C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\Machinekeys\4d657b73466481beba7b0e1b5781db81_c225a308-d2ad-4e58-91a8-6e87f354b030".
运行下面的命令行分配只读访问权限的服务ASP.NET/WCF
0进程标识cacls.exe "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\Machinekeys\4d657b73466481beba7b0e1b5781db81_c225a308-d2ad-4e58-91a8-6e87f354b030" /E /G "NT AUTHORITY\NETWORK SERVICE":R
注意:如果您正在运行MicrosoftWindows®XP,请为ASPNET身份而不是NT Authority \ Network Service标识授予证书权限,因为IIS进程在Windows XP中的ASPNET帐户下运行。
证书可从MMC管理单元中查看证书。打开MMC,选择文件 - >添加/删除管理单元,点击添加按钮并选择证书。从这里您需要选择合适的商店(通常是计算机帐户 - 用于ASP.NET项目的本地计算机)来管理,然后您可以查看/管理证书。
请仔细阅读不同的命令行选项,并确保您在授予任何权限之前清楚了解哪些证书以及它们的工作方式。
默认情况下asp.net运行的网络服务帐户无权访问本地计算机个人证书。通过授予访问以下内容:
第1步 - 如果你不已经拥有了它 安装 - 获得WinHttpCertCfg
第2步 - 如果你已经安装了 证书在机器上 ,您只需授予访问权限 网络服务:
WinHttpCertCfg.exe -g -c LOCAL_MACHINE \ MY -s “IssuedToName” -a “网络服务”
谢谢,我发现这个信息是非常有用的。 – 2009-08-28 16:01:45
icacls.exe的语法为: icacls.exe文件/授予“用户”:(R) – funwhilelost 2010-07-28 00:25:59
要从MMC查看和设置权限,请从上下文菜单中右键单击所需证书,然后选择所有任务。 。 - >管理私钥... – 2011-05-10 17:52:34