AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 683016
Accepted
Simon
Simon
Asked: 2015-04-16 12:46:43 +0800 CST2015-04-16 12:46:43 +0800 CST 2015-04-16 12:46:43 +0800 CST

无法在 Windows Server 2012 上禁用 SNI

  • 772

我有两个不同的“家族”相关站点,每个站点在同一台服务器上都有自己的 UCC 证书。

我将它们托管在同一个 IIS 服务器上,每个家庭使用一个 IP 地址。

两个 UCC 证书均来自 GoDaddy。

每个绑定(针对 UCC 中的每个 SAN)都禁用了“需要服务器名称指示”。

在此处输入图像描述

但是,当我尝试在 Windows XP 上从 IE 8 访问该站点时,只有一个“家族”站点可以工作。另一个只是不谈判。

在SSLLabs.com上分析 SSL 时,我得到以下结果 - 告诉我“该站点仅适用于支持 SNI 的浏览器。”

但这怎么可能!我为每个 :443 绑定禁用了“需要 SNI”。

我什至查看了该applicationHost.config文件,没有一个站点sslFlags="1"表明此设置已启用。是的,我还重新启动了 IIS。

这是怎么回事。我很困惑。我想知道我是否可以以某种方式完全禁用服务器上的 SNI,或者是什么触发了这种情况。昨天我进行了几个月的 Windows 更新,但坦率地说,我认为这种方式已经持续了很长时间,而我没有意识到 - 基于 IE8 XP 客户端的 0 美元销售额;-)

编辑: 我真的认为我的 IIS 已损坏。当我运行netsh http show sslcert每一个绑定的形式是 IP:port。根据这篇文章,如果启用了 SNI,那么我会看到hostname:port并且我看不到这种格式的条目。注册表中也没有任何条目HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\SslSniBindingInfo- 但我确认如果我临时添加 SNI 绑定,则会在此处创建一个新条目。

IP:port                      : 10.0.0.2:443
Certificate Hash             : d59a149e6678bc10d62093401c5b705cc23094be
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check                  : Enabled
Revocation Freshness Time    : 0
URL Retrieval Timeout        : 0
Ctl Identifier               : (null)
Ctl Store Name               : (null)
DS Mapper Usage              : Disabled
Negotiate Client Certificate : Disabled

在此处输入图像描述

iis
  • 2 2 个回答
  • 4143 Views

2 个回答

  • Voted
  1. Best Answer
    Simon
    2015-04-16T18:01:33+08:002015-04-16T18:01:33+08:00

    我没有提到的一件事是我正在使用IIS 集中证书存储- 结果证明这很重要。

    对于我的站点,让我们假设它们是以下组(IP 是内部的并通过防火墙映射)。

    Group A : red.com, blue.com, green.com   (UCC certificate A)  10.0.0.1
    Group B : cat.com, dog.com, mouse.com    (UCC certificate B)  10.0.0.2
    

    A 组是按照我的意愿工作的组(没有报告它需要 SNI)。B 组没有在带有 IIS 8 的 XP 上工作。

    在我的证书存储中,我有每个证书的多个副本(只是pfx文件系统中的文件)。

    red.com.pfx blue.com.pfx green.com.pfx等所有网站

    当我运行命令netsh http show sslcert时,结果发现只有一个 for10.0.0.1:443而不是 for 10.0.0.2:443。这就是导致每个站点出现不同行为的原因。

    IP:port                      : 10.0.0.1:443
    Certificate Hash             : d4a17e3b57e48c1166f18394a819edf770459ac8
    Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
    Certificate Store Name       : My
    Verify Client Certificate Revocation : Enabled
    Verify Revocation Using Cached Client Certificate Only : Disabled
    Usage Check                  : Enabled
    Revocation Freshness Time    : 0
    URL Retrieval Timeout        : 0
    Ctl Identifier               : (null)
    Ctl Store Name               : (null)
    DS Mapper Usage              : Disabled
    Negotiate Client Certificate : Disabled
    

    为什么这个 IP 显示一个条目?我还在另一个网站上有一个额外的绑定,具有相同的证书,用于相同的 IP 地址(用于将非 SSL 重定向到 SSL)。

    我猜 IIS 假设如果您使用的是集中式存储,那么您正在使用 SNI,因此它似乎隐含地报告它需要它 - 即使它确实不需要。

    我能够 [最终] 通过更改我对组 B 的一个绑定以明确引用证书而不是仅仅在商店中查找它来解决这个问题。当然,在这样做之后,10.0.0.2:443条目就会出现在netsh http show sslcert列表中,并且该站点在 XP 中运行良好 :-)

    在此处输入图像描述

    (我只需要这样做dog.com。其他动物站点仍设置为使用中央商店)。

    • 1
  2. jpaugh
    2020-06-09T12:49:58+08:002020-06-09T12:49:58+08:00

    你说,

    我将它们托管在同一个 IIS 服务器上,每个家庭使用一个 IP 地址。

    这正是SNI 设计的场景。

    SNI [...] 允许服务器在同一个 IP 地址和 TCP 端口号上提供多个证书,因此允许多个安全 (HTTPS) 网站(或任何其他通过 TLS 的服务)由同一个 IP 地址提供服务,而不需要所有这些网站使用相同的证书。

    由于这些站点共享相同的 IP 地址和端口,因此区分它们的唯一方法是通过域名。但是,如果没有 SNI 支持,服务器在决定将哪个证书发送给客户端时就无法访问域名。这是因为客户端还没有发送请求,而域名是 HTTP 请求的一部分。

    • 0

相关问题

  • 2003 Server企业版不能运行ASP.NET应用程序?

  • 启用集成 Windows 身份验证时,ASP(经典)在哪个帐户下运行?

  • 是否有一种简单的方法可以生成有关 IIS 中“死”文件的报告?

  • IIS 7 中的 URL 重写

  • 对于 ASP.Net 应用程序,Windows 64 位相对于 32 位的主要优势是什么?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve