如何使用命令行获取 IIS 7.5 中绑定到某个 SSL 证书的站点列表

如何使用命令行获取 IIS 7.5 中绑定到某个 SSL 证书的站点列表

情况:一台 IIS 7.5 服务器有 30 多个站点和 10 多个证书,但一些证书可能已过时。过时意味着它们未绑定到 IIS 上任何站点的 ip:port。

我可以通过 GUI 检查每个站点绑定,但这似乎不是最快的方法。

使用什么命令可以获取使用特定证书的站点列表(给定其通用名称,例如)*.example.com。我想我至少需要netsh http show sslcert,但该输出仅显示证书哈希,而不显示站点名称。

答案1

我正在使用以下 PowerShell 脚本查看框中的所有证书并尝试在 IIS SSL 绑定中找到它。

import-module WebAdministration

ls cert:\LocalMachine\my | select * | foreach {

  $found = $false
  $tp = $_.Thumbprint

  ls IIS:\SslBindings | Foreach {
    if ($_.Thumbprint -eq $tp)
    {
      Write-Host "Used in $($_.IpAddress) $($_.Host)"
      $found = $true
    }    
  }
  if ($found)
  {
    Write-Host $tp -foregroundcolor green
    Write-Host $_.Subject -foregroundcolor green
    Write-Host $_.NotAfter -foregroundcolor green
  }
  else
  {
    Write-Host "Not in use"
    Write-Host $tp -foregroundcolor red
    Write-Host $_.Subject -foregroundcolor red
    Write-Host $_.NotAfter -foregroundcolor red
  }
  Write-Host "***************************************************************"
}

相关内容