如何在PowerShell中检索IIS网站的SSL证书

如何在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

我正在尝试检索一些IIS网站的证书,并将指纹与我拥有的证书相匹配。如果指纹匹配,那就很好了。但是,如果指纹不匹配,那么我想将该特定证书添加到该网站。我知道我可以使用以下方法验证所需证书是否存在:

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
        }
    }
}