我正在向SQL添加/更改证书(手动和通过powershell脚本)。
我找到了证书->将其添加到SQL中(在配置管理器中手动操作,或者通过powershell ->将证书的指纹放在SQL注册表中)。这一切似乎都运行得很好。但是当我续订证书时(右键单击证书->所有任务->“使用新密钥续订证书...”),由于此证书过期或其他原因,旧的指纹将保留在SQL注册表中,SQL配置管理器将在证书所在的位置显示一个空行。
有没有一种方法可以续订证书,而不必在SQL Server配置管理器中更改证书?
发布于 2021-03-15 23:52:23
您不能这样做。
指纹是证书中多个属性的散列。如果有一个属性稍有不同,就会产生截然不同的证书哈希。
A(...)指纹是一个计算字段,即不是证书数据本身的一部分。在GUI中,这些称为属性。在shell扩展中,指纹称为thumbprint,在Certutil输出中称为Cert hash。由此,我们可以推测指纹是某种散列或单向函数(OWF),其友好名称是thumbprint。
此post goes into greater details.
在更新证书之后,您只需运行一个tSql脚本来更新SQL服务器上的证书绑定。This post goes into good details about what that would look like.
然后,您可以使用PowerShell的SQL dbaTools模块运行该脚本。
https://stackoverflow.com/questions/66638443
复制相似问题