当 IIS 中的身份验证模式为匿名时,为什么 IE 会显示证书弹出窗口?

当 IIS 中的身份验证模式为匿名时,为什么 IE 会显示证书弹出窗口?

我在IIS服务器上部署了一个网站。身份验证模式设置为匿名:已启用。

当我输入网站网址并按下回车键时,IE 会弹出一个证书弹出窗口,要求我选择证书。为什么会发生这种情况?

答案1

浏览器提示输入证书,因为服务器在 TLS 握手期间发送了证书请求消息。

通常,作为此过程的一部分,它会发送一份 CA 的可分辨名称列表,这些 CA 的证书将被接受用于身份验证。此列表基本上意味着“向我发送由其中一个 CA 颁发的客户端身份验证证书”。如果不发送列表,客户端可以随意发送其拥有的任何客户端身份验证证书,而这些证书很可能不受服务器信任。这只会增加操作员的工作量/挫败感,因为他们必须弄清楚(猜测?)选择哪个证书。

因此,您看到三个证书,要么是因为您的浏览器中只安装了三个客户端身份验证证书,且列表为空;要么是因为您的浏览器中安装了三个以上的客户端身份验证证书,且服务器发送的列表限制了它们的选择。

详细信息RFC 5246 第 7.4.4 节

服务器上配置了从客户端请求证书的选项,因此会显示此弹出窗口,因为服务器配置为请求客户端证书。

请记住,这发生在任何 HTTP 流量流动之前,因此设置如下内容匿名身份验证在 IIS 上不会影响这一点,因为这与在设置 TLS 会话后如何通过 HTTP 对用户进行身份验证有关(无、Kerberos、用户名/密码等)。

大多数 Web 服务器可以针对不同的方案 (http vs https)、不同的端口 (443 vs 8443)、不同的 DNS 名称 (www.example.orgvs app.example.org)或甚至不同的虚拟目录(/ vs /myapp)。在此级别可以找到请求客户端身份验证的设置。

在 IIS 客户端身份验证下配置SSL 设置页。 需要 SSL设置是否使用 HTTPS(服务器身份和加密)以及下面的三个选项客户端证书定义浏览器是否需要发送客户端身份验证证书(如果没有前者,则无法获得后者,因为客户端身份验证是 TLS(或 SSL)的一部分)。有一个不同的SSL 设置每个站点以及站点下的每个虚拟目录的页面。如果您不希望服务器请求客户端证书,请将其设置为忽略在所有这些中。

相关内容