Windows IIS 无法配置客户端证书

问题描述 投票:0回答:1

我在Nginx服务器中成功添加了以下配置,在客户端安装客户端证书后工作正常。

    ssl_client_certificate /home/test/clientkey/client.crt;
    ssl_verify_client on;

但是我有另一台Windows IIS服务器,需要类似的操作。我按照网络教程

1. Enable IIS Client Certificate Mapping Authentication in Windows
2. IIS SSL setting: Require SSL 
3. Disable Anonymous Authentication
4. set system.webServer/security/authentication/iisClientCertificateMappingAuthentication

但是还是失败,可能是我误解了IIS的机制,所以我有以下疑问:

  1. 为什么需要在这里输入用户名和密码以及什么?
  2. 我没有找到像Ngnix配置一样输入客户端证书的地方。
  3. 我无法弄清楚ManyToOne和OneToOne之间的区别,如果后者表示“Windows帐户”,是否意味着我无法通过Linux客户端访问它?
ssl iis client-certificates
1个回答
0
投票

1.为什么需要在这里输入用户名和密码以及什么?

因为您需要将证书映射到 Windows 用户帐户,所以它会要求您提供以下信息:

  • userName => 用于登录的帐户。

  • 密码 => 该帐户的密码。

当您设置userName=testuser时,如果客户端提供了有效的证书,就会以您的“testuser”账户进入网站。

2.我没有找到像Ngnix配置一样输入客户端证书的地方。

如果启用一对一证书映射,则需要在配置编辑器的“证书”字段中输入证书的 Base-64 编码字符串。

如果启用多对一证书映射,此映射机制将使用通配符匹配规则来验证客户端证书是否包含某些信息,例如颁发者或主题。此映射不识别各个客户端证书;它接受满足特定标准的所有客户端证书。如果客户端获得另一个包含所有相同用户信息的证书,现有映射仍然有效。无需导出证书即可在多对一映射中使用。

3.我无法弄清楚ManyToOne和OneToOne之间的区别,如果后者意味着“Windows帐户”,是否意味着我无法通过以下方式访问它 Linux 客户端?

一对一客户端映射 => 每个单独的受信任用户证书都映射到一个 Windows 用户帐户。

只要您的客户端导入相同的服务器证书并在发出请求时选择正确的证书,服务器就会匹配证书的 Base-64 编码字符串。成功匹配意味着客户端提供了有效的证书。它将使用您设置的 Windows 帐户“testuser”进入网站。

多对一客户端映射 => 多个可信用户证书映射到单个 Windows 用户帐户。

只要您的客户端证书符合您在配置编辑器中设置的规则,该证书就被视为有效,并将以您设置的用户身份登录。

参考链接:

IIS 客户端证书映射身份验证

一对一映射

多对一映射

IIS 客户端证书映射身份验证

Manytoone 客户端证书映射

© www.soinside.com 2019 - 2024. All rights reserved.