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

标签 powershell ssl iis

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

Get-ChildItem -Path Cert:\LocalMachine\My | Select-Object Thumbprint

我可以使用以下方法获取 IIS 网站并查看绑定(bind):

Get-ChildItem -Path IIS:Sites | Select-Object -ExpandProperty Bindings

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

$CertThumbprint = "###############################"

如果我做错了,请告诉我。谢谢。

最佳答案

首先,这不是我的代码,发现here .
你也许可以试试这个:

Import-Module WebAdministration
$siteThumbs = Get-ChildItem IIS:SSLBindings | Foreach-Object {
    [PSCustomObject]@{
        Site       = $_.Sites.Value
        Thumbprint = $_.Thumbprint
    } 
}

这应该会为您提供一组包含网站和指纹的对象供您比较。


根据您的评论,我收集到不止一个站点可以共享相同的指纹并单独列出它们,您可以这样做(未经测试)

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

关于powershell - 如何在 PowerShell 中检索 IIS 网站的 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66260380/

相关文章:

powershell - 签署 powershell 脚本?

windows - 删除特定图像的终止容器

powershell - Powershell配置文件 “on exit”事件?

powershell - 如果您知道为什么 : is assigned but never,如何使警告静音甚至更好

asp.net - 将 ASP NET Core 部署到 IIS

angular - 在子文件夹下部署 Angular SPA

java - SASL_SSL 安全协议(protocol)如何工作?客户端是否验证服务器(X.509 证书)?

mongodb - 如何使用无效的 Tls 证书连接 Rust MongoDB 驱动程序?

java - 如何生成自签名并配置 SSL?

asp.net - 当 IIS 已经处理请求并发时,为什么要使用异步 Controller ?