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

ARa*_*lim 5 iis powershell ssl

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

Get-ChildItem -Path Cert:\LocalMachine\My | Select-Object Thumbprint
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令获取 IIS 网站并查看绑定:

Get-ChildItem -Path IIS:Sites | Select-Object -ExpandProperty Bindings
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何检索这些网站的证书指纹。我将目标证书的指纹存储在变量中,如下所示:

$CertThumbprint = "###############################"
Run Code Online (Sandbox Code Playgroud)

如果我的方法不对,请告诉我。谢谢。

The*_*heo 7

首先,这不是我的代码,在这里找到的。
你也许可以尝试这个:

Import-Module WebAdministration
$siteThumbs = Get-ChildItem IIS:SSLBindings | Foreach-Object {
    [PSCustomObject]@{
        Site       = $_.Sites.Value
        Thumbprint = $_.Thumbprint
    } 
}
Run Code Online (Sandbox Code Playgroud)

这将为您提供一组包含站点和指纹的对象供您比较。


从您的评论中,我收集到多个网站可以共享相同的指纹并单独列出它们,您可以这样做(未经测试)

Import-Module WebAdministration
$siteThumbs = Get-ChildItem IIS:SSLBindings | Foreach-Object {
    $thumb = $_.Thumbprint
    foreach ($site in $_.Sites.Value) {
        [PSCustomObject]@{
            Site       = $site
            Thumbprint = $thumb
        }
    }
}
Run Code Online (Sandbox Code Playgroud)