在Powershell中更新IIS证书时发生的问题

时间:2018-11-29 12:26:59

标签: powershell ssl iis

我正在尝试通过powershell在IIS中自动更新证书,一切正常,只是脚本不会在不先删除现有证书的情况下覆盖现有证书。我想以优雅的方式做到这一点。这是引起问题的路线,有什么想法吗?

New-Item "IIS:\SslBindings\*!${Port}!${HostName}" -Thumbprint 
$NewCertThumbprint -SslFlags 1

这是错误:

New-Item : Cannot create a file when that file already exists
At C:\Scripts\SSL_Check.ps1:20 (the line above) char:13
+             New-Item "IIS:\SslBindings\*!${Port}!${HostName}" -Thumbprint $NewCe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-Item], Win32Exception
    + FullyQualifiedErrorId : System.ComponentModel.Win32Exception,Microsoft.PowerShell.Commands.NewItemCommand

(我使用指纹查询作为变量来区分新旧证书)。

1 个答案:

答案 0 :(得分:1)

我会先测试,但这样的事情应该基于: iis-7-and-the-webadministration-snapin

这应该强制替换项目:

New-Item -Path "IIS:\Sites" -Name $HostName -Type Site -Bindings @{protocol="https";bindingInformation="*:$Port:";thumbprint=$NewCertThumbprint} -force

或者,您可以通过使用设置项来修改已经存在的内容来做同样的事情

Set-Item -Path "IIS:\Sites" -Name $HostName -Type Site -Bindings @{protocol="https";bindingInformation="*:$Port:";thumbprint=$NewCertThumbprint} -force

根据您的原始帖子,您应该能够在其末尾添加力量:

新项目 "IIS:\SslBindings*!${Port}!${HostName}" -Thumbprint $NewCertThumbprint -SslFlags 1 -force