使用 CloudFlare 和 IIS 进行经过身份验证的 Origin Pulls

使用 CloudFlare 和 IIS 进行经过身份验证的 Origin Pulls

我正在运行 Windows Server 2012 R2,前面装有 CloudFlare,并尝试按照此处所述设置经过身份验证的源拉取 -

https://support.cloudflare.com/hc/en-us/articles/204899617

我遇到的问题是,即使按照步骤启用了客户端证书身份验证,尝试通过 CloudFlare 访问网站时仍然会出现 403 禁止访问。我使用了此处指南的一部分在 IIS 上进行设置 -

https://support.microsoft.com/en-us/kb/315588

我已完成的步骤如下:

  1. 在 CloudFlare 帐户上启用经过身份验证的来源提取
  2. IIS SSL 设置 -> 需要 SSL + 客户端证书:需要
  3. 配置编辑器 -> iisClientCertificateMappingAuthentication
    1. 已启用 -> True
    2. oneToOneMappings -> 添加 -> 有效的 Windows 用户名/密码 + 证书附加到上述 CloudFlare 支持文章的底部

看来我一定是在某个地方漏掉了某个步骤?

答案1

对于偶然发现此问题的任何人,在追踪错误之后,我发现我错过的步骤是将 CloudFlare 客户端证书导入本地机器->受信任的根证书颁发机构。

编辑:这实际上只解决了问题的一半。问题是,这会将 CloudFlare 证书添加为受信任证书,并允许它们进行身份验证。但是,任何其他受信任证书/客户端也可以执行相同操作。

要实际授权特定证书(由 CloudFlare 证书签名),必须有其他方法,我猜测是 IIS 中的“多对一”证书映射。

编辑2:这工作得很好,添加了一个新的多对一映射规则,并将受信任的根CloudFlare Cert颁发的任何客户端证书映射到我的web / Windows用户。

相关内容