加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 将Always Encrypted Certificate放在IIS 7.5 Web服务

发布时间:2020-12-16 03:24:28 所属栏目:asp.Net 来源:网络整理
导读:我们有一个使用Always Encrypted的SQL Server 2016数据库.我们最近发布的ASP.net网站试图从这个数据库中提取数据,当它发生时,我们得到这个错误: 错误:无法解密列’EnSSd’.无法使用密钥库提供程序解密列加密密钥:’MSSQL_CERTIFICATE_STORE’.加密列加密
我们有一个使用Always Encrypted的SQL Server 2016数据库.我们最近发布的ASP.net网站试图从这个数据库中提取数据,当它发生时,我们得到这个错误:

错误:无法解密列’EnSSd’.无法使用密钥库提供程序解密列加密密钥:’MSSQL_CERTIFICATE_STORE’.加密列加密密钥的最后10个字节是:’B8-48-B3-62-90-0B-1D-A6-7D-80′.证书位置’CurrentUser’中的证书存储’My’中找不到指纹’97B0D3A64CADBE86FE23559AEE2783317655FD0F’的证书.验证数据库中列主密钥定义中的证书路径是否正确,并且证书已正确导入证书位置/存储.参数名称:masterKeyPath

现在我们知道这意味着证书尚未放置在服务器上的适当位置.在开发过程中,我们只是将证书放在个人证书存储区下的证书管理单元中,这样就可以了,但是现在网站已经发布了,我们尝试在网络服务器上做同样的事情,但它不起作用(我们认为它不会).

在站点上启用匿名身份验证,匿名用户身份为IUSR. ASP.NET模拟已禁用.

放置证书的适当位置在哪里?

更新 – 我们通过将应用程序池标识帐户更改为创建证书的帐户来实现它.它也是将证书添加到Web服务器上的当前用户 – 个人列表时使用的帐户.我们宁愿不使用此帐户,所以再次说明,放置证书的适当位置在哪里?

解决方法

IIS无法识别来自本地用户的证书,在SQL Server中创建证书时,默认情况下它将放入本地用户存储,执行以下操作并确保在本地计算机下生成证书 – >当前用户证书存储区

>使用默认证书生成加密列
>将所有加密列撤消到纯文本
>从表安全性“您的数据库 – >表 – >安全性 – >始终加密密钥”转到证书和密钥,然后右键单击“CEK_Auto 1” – >脚本列加密密钥为 – >创建新窗口,保留此生成的脚本
>删除CEK_Auto 1
>执行“CMK_Auto 1”证书的步骤3并删除它
>在“CMK_Auto 1”脚本中将证书路径“CurrentUser”更改为“LocalMachine”
>你的例子路径将是这样的“N’LocalMachine / my / G4452V8ERH035D2557N235B29MWR0SV834263G26’”
>执行CMK_Auto 1和CEK_Auto 1脚本
>确保证书生成本地计算机个人目录
>它会工作,如果没有用IIS Express测试,那意味着你的证书仍然保存在本地用户个人目录中
> rest all all确保在连接字符串中添加“Column Encryption Setting = Enabled”.

谢谢

约翰拉杰什杰

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读