如何提供对应用程序池标识的私钥访问?

时间:2011-12-06 08:05:02

标签: asp.net .net iis-7 azure

我遇到了这个优秀的博客,解释了如何提供对私钥的访问以及为什么需要私钥:

  

在www.microsoft.com上,我们有许多使用证书的应用程序   要访问其他Web服务,我们的方式是安装   证书与私钥进入本地机器商店和   提供对私钥的应用程序池标识的访问权限   使用证书中的序列号或指纹   应用程序的web.config。脚本的关键挑战之一   超出对私有密钥的访问应用程序池标识   服务器场。 (来源:http://tinyurl.com/cbsmpqk

目前我的silverlight应用程序无法访问数据库,因为它似乎无法访问已安装的认证(在Azure Cloud上),因为这是读取加密的DB connectionString所必需的。

它说无法使用提供商'CustomProvider'解密 - >密钥集不存在。

按照上面的博客,我可以通过将已安装证书的权限更改为“已验证用户”或“用户”的其他读取权限来解决此问题。

在这两种情况下都可以正常工作,但我不了解安全隐患。这是否意味着现在任何来自互联网的人都能够阅读我的证书的指纹?我错误地打开了一个安全漏洞吗?

我应该使用哪个用户名/角色授予对证书私钥的读取权限?

非常感谢

2 个答案:

答案 0 :(得分:0)

我认为这并不意味着任何人都可以访问您的私钥。如果您设置“经过身份验证的用户”或“用户”,则表示只有这些组中的用户才具有访问权限。但如果你设置“每个人”意味着每个人。

答案 1 :(得分:0)

IIS AppPool\AppPoolName用户授予权限。例如,IIS AppPool\DefaultAppPool

从这个回答:https://stackoverflow.com/a/2647003/991267