如何在PowerShell中检索IIS网站的SSL证书
我正在尝试检索一些IIS网站的证书,并将指纹与我拥有的证书相匹配。如果指纹匹配,那就很好了。但是,如果指纹不匹配,那么我想将该特定证书添加到该网站。我知道我可以使用以下方法验证所需证书是否存在:如何在PowerShell中检索IIS网站的SSL证书,powershell,ssl,iis,Powershell,Ssl,Iis,我正在尝试检索一些IIS网站的证书,并将指纹与我拥有的证书相匹配。如果指纹匹配,那就很好了。但是,如果指纹不匹配,那么我想将该特定证书添加到该网站。我知道我可以使用以下方法验证所需证书是否存在: Get-ChildItem -Path Cert:\LocalMachine\My | Select-Object Thumbprint 我可以通过以下方式获取IIS网站并查看绑定: Get-ChildItem -Path IIS:Sites | Select-Object -ExpandProper
Get-ChildItem -Path Cert:\LocalMachine\My | Select-Object Thumbprint
我可以通过以下方式获取IIS网站并查看绑定:
Get-ChildItem -Path IIS:Sites | Select-Object -ExpandProperty Bindings
但是,我不知道如何检索这些网站的证书指纹。我将目标证书的指纹存储在如下变量中:
$CertThumbprint = "###############################"
如果我走错了方向,请告诉我。谢谢。首先,这不是我的代码,发现了。
你可以试试这个:
Import-Module WebAdministration
$siteThumbs = Get-ChildItem IIS:SSLBindings | Foreach-Object {
[PSCustomObject]@{
Site = $_.Sites.Value
Thumbprint = $_.Thumbprint
}
}
这将为您提供一个包含站点和指纹的对象数组,供您进行比较
从你的评论中,我收集到不止一个网站可以共享同一个指纹,如果要单独列出它们,你可以这样做(未经测试)
是否有一种方法可以让
$sitetumbs
以每个站点对应其自身指纹的方式显示。现在,我得到的输出是:Site{Site 1,testing Site 2,testing Site 255….}
Thumbprint######
@Aithorusa请查看我的编辑
Import-Module WebAdministration
$siteThumbs = Get-ChildItem IIS:SSLBindings | Foreach-Object {
$thumb = $_.Thumbprint
foreach ($site in $_.Sites.Value) {
[PSCustomObject]@{
Site = $site
Thumbprint = $thumb
}
}
}