首页 > 解决方案 > 有没有办法更新证书而无需更改 SQL Server 配置管理器中的证书(的指纹)?

问题描述

我正在向 SQL 添加/更改证书(手动和通过 powershell 脚本)。

我找到证书-> 将其添加到 SQL(在配置管理器中手动或通过 powershell -> 将证书的指纹放入 SQL 注册表中)。这一切似乎工作正常。但是当我更新证书时(右键单击证书-> 所有任务->“使用新密钥更新证书...”),由于此证书到期或其他原因),旧指纹将保留在 SQL 注册表中,并且SQL 配置管理器将在证书所在的位置显示一个空行。

有没有办法更新证书而无需更改 SQL Server 配置管理器中的证书(的指纹)?

标签: sqlpowershellcertificate

解决方案


你不能做这个。

指纹是证书中许多属性的哈希值。即使一个属性有细微差别,也会导致证书哈希值大不相同。

A(...) 指纹是一个计算字段,即不是证书数据本身的一部分。在 GUI 中,这些称为属性。在 shell 扩展中,指纹称为指纹,在 Certutil 输出中称为 Cert hash。由此我们可以推测指纹是某种散列或单向函数(OWF),其友好名称是指纹。

这篇文章更详细地介绍了。

更新证书后,您只需运行 tSql 脚本即可更新 SQL Server 上的证书绑定。 这篇文章详细介绍了它的外观。

然后,您可以使用 PowerShell 的 SQL dbaTools 模块运行该脚本。


推荐阅读