【问题标题】:How to require mutual TLS in IIS for all requests at specific URL's如何在 IIS 中为特定 URL 的所有请求要求双向 TLS
【发布时间】:2019-08-18 02:14:06
【问题描述】:

对于 Mutual TLS (MTLS),Identity Server 4 documentation 表示 Identity Server 在某些端点配置为 MTLS。

在 IdentityServer 中,双向 TLS 端点应该位于路径 ~/connect/mtls 的下方。这意味着您的 Web 服务器可以配置为对该路径上和该路径下的所有请求都需要双向 TLS。

有没有办法在 IIS 中做到这一点?我一直在广泛研究,但找不到为特定端点启用 MTLS 的方法。

【问题讨论】:

  • 您能提供一个到目前为止的配置示例吗?我认为您应该能够使用顶级 和它下面的 元素。
  • 嗨,mackie,我还没有创建配置,但我很快就会创建配置,并且我被困在这个特定问题上。

标签: ssl iis identityserver4 x509certificate tls1.2


【解决方案1】:

如果您在 ApplicationHost.config 中设置了相关节点的读/写权限,您可以在 web.config 中进行设置:

<configuration>
    ...
    <location path="connect/mtls">
        <system.webServer>
            <security>
                <access sslFlags="Ssl, SslNegotiateCert, SslRequireCert" />
            </security>
        </system.webServer>
    </location>
    ...
</configuration>

/汉斯

【讨论】:

  • 感谢您的回复。这也符合 Identity Server 的 Brock Allen 在我问他同样的问题 here 时所说的话。
  • Dominick Baier 最近撰写了有关设置 MTLS 的文章:- 相互 TLS 和 Pos-of-Possession 访问令牌 - 第 1 部分:设置,leastprivilege.com/2020/02/07/…
  • 哦,太棒了。非常感谢!
【解决方案2】:

在身份服务器documentation 中引用的证书身份验证包的readme 中,它说:

我可以将我的应用程序配置为仅在某些路径上需要证书吗?

不可能,记住证书交换是在 HTTPS 对话开始时完成的,它是由主机完成的,而不是应用程序。 Kestrel、IIS、Azure Web Apps 没有针对这类事情的任何配置。

所以我认为这是不可能的。但如果在特定路径上无法进行证书身份验证,我当然会感谢有关如何为 Identity Server 解决 MTLS 的任何其他反馈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2010-10-19
    • 2013-06-29
    相关资源
    最近更新 更多