HTTPS 连接失败,IIS 7.0 和 7.5 中网站的 SSL 绑定被删除
本文可帮助你解决 Internet Information Services (IIS) 7.0 和 7.5 中网站 HTTPS 连接失败和 SSL 绑定被删除的问题。
原始产品版本: Internet 信息服务
原始 KB 编号: 2025598
症状
请考虑以下情况:
- 你有一个在 Internet IIS 7.0 或更高版本上运行并配置了 SSL 绑定的 Web 应用程序。
- 通过 HTTPS 与网站的连接会间歇性失败。
- 用户仍可以通过 HTTP 访问站点,除非站点配置为需要 SSL 连接。
出现此问题时,尝试通过 HTTPS 浏览网站的用户可能会看到警告消息,指出 SSL 证书已过期或尚无效,或者网站名称不正确。 如果站点管理员打开 IIS 管理器以查看站点的 SSL 设置,他们可能会发现网站的 SSL 绑定已被删除,或已替换为无效的证书绑定信息。 最后,系统事件日志中记录类似于以下内容的事件:
日志名称:系统
源:Microsoft-Windows-HttpEvent
日期:2010/3/31 下午 2:43:28
事件 ID:15300
任务类别:无
级别:警告
关键字:经典
用户:不适用
计算机:IISServer
说明:
已删除端口的 SSL 证书设置:x.x.x.x:443
原因
网站的 SSL 绑定已被删除且未替换,或者已被删除并替换为无效的证书信息。 出现此问题的原因是旧版 SSL 证书哈希属性干扰了当前 SSL 绑定,导致删除正确的绑定。
解决方案
在 applicationHost.config 文件的 节中找到<CustomMetaData>
以下属性,并将其删除:
<key path="LM/W3SVC/X">
<property id="**5506**" dataType="Binary" userType="1" attributes="None" value="oXiHOzFAMOF0YxIuI7soWvDFEzg=" />
</key>
此属性是 IIS 6.0 中的旧功能,不再需要此属性。
更多信息
自定义 5506
属性在 IIS 6.0 中用于存储 SSL 证书哈希。 当依赖于 IIS 7.0 或 IIS 7.5 中的 ABO 映射器的应用程序或服务尝试启动时,它会尝试初始化 ABO 树结构,其中包括生成自定义节点和属性。 在此过程中,它会从 <CustomMetaData>
部分读取内容,并尝试映射 ABO 树结构中的属性。 在映射期间,它会删除 HTTP.SYS 中的当前 SSL 绑定,并使用上述旧哈希值重新创建一个新绑定。 如果此值无效,则无法在 HTTP.sys中添加新的 SSL 绑定。 这将导致网站没有有效的 IP:对应于 HTTP.sys中的 SSL 绑定的端口组合。 如果 SSL 绑定为空或无效,则与网站的 HTTPS 连接会失败。
重现步骤
此问题可以通过在 applicationHost.config 文件的 节下<CustomMetadata>
添加以下内容来重现:
<key path="LM/W3SVC/X">
<property id="5506" dataType="Binary" userType="1" attributes="None" value="oXiHOzFAMOF0YxIuI7soWvDFEzg=" />
</key>
完成此操作后,启动任何需要 ABO 映射器的应用程序(例如启动 IIS 管理器 (Inetmgr6.exe) 或使用 ADSUTIL.vbs 枚举元数据库)将导致本文中所述的问题。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈