我遇到了这个优秀的博客,解释了如何提供对私钥的访问以及为什么需要私钥:
在www.microsoft.com上,我们有许多使用证书的应用程序 要访问其他Web服务,我们的方式是安装 证书与私钥进入本地机器商店和 提供对私钥的应用程序池标识的访问权限 使用证书中的序列号或指纹 应用程序的web.config。脚本的关键挑战之一 超出对私有密钥的访问应用程序池标识 服务器场。 (来源:http://tinyurl.com/cbsmpqk)
目前我的silverlight应用程序无法访问数据库,因为它似乎无法访问已安装的认证(在Azure Cloud上),因为这是读取加密的DB connectionString所必需的。
它说无法使用提供商'CustomProvider'解密 - >密钥集不存在。
按照上面的博客,我可以通过将已安装证书的权限更改为“已验证用户”或“用户”的其他读取权限来解决此问题。
在这两种情况下都可以正常工作,但我不了解安全隐患。这是否意味着现在任何来自互联网的人都能够阅读我的证书的指纹?我错误地打开了一个安全漏洞吗?
我应该使用哪个用户名/角色授予对证书私钥的读取权限?
非常感谢
答案 0 :(得分:0)
我认为这并不意味着任何人都可以访问您的私钥。如果您设置“经过身份验证的用户”或“用户”,则表示只有这些组中的用户才具有访问权限。但如果你设置“每个人”意味着每个人。
答案 1 :(得分:0)
向IIS AppPool\AppPoolName
用户授予权限。例如,IIS AppPool\DefaultAppPool
。