You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取IIS服务器全站点HTTP绑定完整列表排查证书冲突

IIS HTTPS绑定证书冲突批量排查方案

修改IIS站点HTTPS绑定、选择新证书时,系统会弹出如下提示:

至少有一个其他站点正在使用同一绑定,且该绑定配置了不同证书。是否确定要重用此HTTP绑定,将其他一个或多个站点重新分配为使用新证书?

该提示代表当前操作的绑定(IP+端口+主机名组合,未启用SNI时仅匹配IP+端口)已被其他站点关联了不同证书,确认操作后所有共用该绑定的站点都会被替换为新选证书,站点规模越大受影响范围越广。服务器部署数百个站点时手动逐个排查效率极低,可通过以下方法批量获取全站点绑定列表,快速定位冲突站点。

方法1:PowerShell+IIS模块导出全量绑定明细(推荐)

无需额外安装工具,直接以管理员身份打开PowerShell执行以下脚本,即可导出所有站点的绑定信息、对应证书指纹到CSV文件,方便筛选对比:

# 加载IIS管理模块
Import-Module WebAdministration
# 遍历所有站点收集绑定信息
$allBindings = Get-ChildItem -Path IIS:Sites | ForEach-Object {
    $currentSite = $_
    $_.Bindings.Collection | ForEach-Object {
        [PSCustomObject]@{
            站点名称 = $currentSite.Name
            站点ID = $currentSite.Id
            协议类型 = $_.protocol
            绑定信息 = $_.bindingInformation
            主机名 = $_.hostheader
            证书指纹 = if ($_.certificateHash) { ($_.certificateHash | ForEach-Object { $_.ToString("X2") }) -join '' } else { "" }
            证书存储 = $_.certificateStoreName
            已启用SNI = [bool]($_.sslFlags -band 1)
        }
    }
}
# 导出到C盘根目录的CSV文件
$allBindings | Export-Csv -Path C:\IIS所有站点绑定清单.csv -NoTypeInformation -Encoding UTF8

拿到导出的CSV文件后,按以下规则筛选冲突项:

  • 未启用SNI的HTTPS绑定:按绑定信息(格式为IP:端口:)分组,同组内出现多个不同证书指纹的即为冲突绑定
  • 已启用SNI的HTTPS绑定:按绑定信息+主机名组合分组,同组内出现多个不同证书指纹的即为冲突绑定

方法2:appcmd命令行快速查看

如果不需要导出文件,只想快速查看绑定列表,可以管理员身份打开命令提示符,执行IIS自带的appcmd命令输出全站点绑定:
%windir%\system32\inetsrv\appcmd list site
命令执行后会直接列出所有站点的名称、ID、绑定信息、对应证书哈希,可直接对照排查。

方法3:直接读取IIS核心配置文件

IIS所有站点配置统一存储在C:\Windows\System32\inetsrv\config\applicationHost.config文件中,可直接用文本编辑器打开,查找<sites>节点下每个站点的<binding>配置,标签内的bindingInformation、certificateHash属性和上述两种方法拿到的字段含义完全一致,可用于离线排查场景。

  • 注意:非SNI模式下同IP+端口的HTTPS绑定只能关联一张证书,只要多个站点共用同一IP的443端口且未开启SNI,修改任意一个站点的证书都会触发弹窗,替换所有共用该IP:端口站点的证书。

内容的提问来源于stack exchange,提问作者KWallace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 23:36:34