ASP.net权限到根证书存储区

JL.*_*JL. 8 asp.net permissions certificate

是否可以授予证书存储的asp.net读权限?

如果有,怎么样?

如果不...我是否需要为每个证书文件手动设置权限?

如果是,这些文件在HDD上的物理位置在哪里?

Sti*_*ack 12

通常,您授予A证书的权限.我使用这样的方法来查找自定义的证书和授予权限.如果您使用的是Verisign,Thawte等公共实体颁发的证书,则可能没有必要.

FindPrivateKey.exe My LocalMachine –n "CN=<certificate issuer>" 
Run Code Online (Sandbox Code Playgroud)

...将在特定发行人的个人商店中的本地机器上找到证书.

注意:如果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".
Run Code Online (Sandbox Code Playgroud)

运行以下命令行以指定对ASP.NET/WCF服务的进程标识的只读访问权限

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 
Run Code Online (Sandbox Code Playgroud)

注意:如果您运行的是MicrosoftWindows®XP,请为ASPNET标识而不是NT Authority\Network Service标识提供证书权限,因为IIS进程在Windows XP中的ASPNET帐户下运行.

可以从证书的MMC管理单元中查看证书.打开MMC,选择"文件" - >"添加/删除管理单元",单击"添加"按钮并选择"证书".从这里,您需要选择适当的存储(通常是计算机帐户 - 用于ASP.NET项目的本地计算机)来管理,然后您可以查看/管理证书.

请仔细查看不同的命令行选项,并确保在授予任何权限之前清楚地了解哪些证书及其工作方式.

  • 要从MMC查看和设置权限,请右键单击所需的证书,从上下文菜单中选择所有任务... - >管理私钥... (5认同)
  • 在Windows Server 2008/Windows 7上,您应该在"C:\ ProgramData\Microsoft\Crypto\RSA\MachineKeys"文件夹中找到这些证书. (2认同)

小智 9

默认情况下,asp.net运行的网络服务帐户无权访问本地计算机个人证书.通过以下方式授予访问权:

来自Sohnee @ forums.asp.net的转发

第1步 - 如果您还没有安装它 - 获取WinHttpCertCfg

步骤2 - 如果您已在计算机上安装了证书,并且只需要授予对网络服务的访问权限:

WinHttpCertCfg.exe -g -c LOCAL_MACHINE\MY -s"IssuedToName"-a"NetworkService"