我希望遍历所有 IIS 绑定并找到任何使用特定证书(即将过期的证书)的绑定,并将它们全部替换为新证书。无需更改有关绑定的任何其他内容。
Powershell 似乎是解决这个问题的明显方法。
我找到了一个很棒的脚本,可以查找任何具有特定“旧指纹”的 IIS 绑定,并用其指纹指定的新证书替换该证书。我在这里找到的原始脚本(存档在这里)
鉴于已安装新证书,此操作有效。
删除一些脚本的缺陷可以归结为:
$OldThumbprint = "########################################"
$NewThumbprint = "########################################"
Get-WebBinding | Where-Object { $_.certificateHash -eq $OldThumbprint} | ForEach-Object {
Write-Host "Replacing Cert For " $_
$_.RemoveSslCertificate()
$_.AddSslCertificate($NewThumbprint, 'My')
}
Run Code Online (Sandbox Code Playgroud)