gpt4 book ai didi

Tomcat + SNI + 相互认证

转载 作者:行者123 更新时间:2023-11-28 22:40:51 27 4
gpt4 key购买 nike

我知道 Tomcat 提供 SNI 和相互身份验证,但是否可以只为选定的应用程序/路径启用 MA? IE。假设我的服务器上有以下应用程序/端点:

/app1
/app2/human
/app2/robot

其中 /app2/human 被人类使用,而 /app2/robot 被机器人、计算机和其他设备使用(例如/app2/human 提供 HTML/app2/robot 提供 JSON)。现在,我能否以某种方式配置 Tomcat 以接受通过 SSL 连接到 /app1/app2/human 而无需 MA 以及仅连接到 /app2/robot客户是否出示了有效证书?

当然,我想在不为每个应用程序配置单独的端口/连接器的情况下这样做,这很容易。

提前致谢。

最佳答案

Tomcat 不为不同的路径提供选择性相互认证,但如果您只需要在 webapp 级别(而不是在特定的 web 应用程序内部)应用这种选择性相互认证,您可能是能够拥有一个单独的<Connector>用于特殊的 Web 应用程序。这需要一个单独的 <Service>因此 <Host> ,当然还有不同的端口号(除非您碰巧有一个单独的网络接口(interface),您可以使用它来保留端口)。

我还没有尝试过,但我认为理论上可以配置 SNI+client-auth,以便特定主机名具有不同的客户端身份验证要求,但 Tomcat 中没有这样的代码目前支持。

Tomcat 可以配置为使用不同的信任库和不同的 certificateVerification设置每个主机名,但它不允许您更改它每个路径

另一种选择是将 Tomcat 配置为“想要”(甚至需要)客户端证书,然后使用 Filter 自行执行检查. Filter s 可以在每个路径的基础上应用,而且您的应用程序变得更加可移植,因为您不依赖于某些可能是 Tomcat 特定的功能。

看看这个线程,了解几年前我是如何做到这一点的。有(最终)一些示例代码以及大量关于我如何获得所有信息并将其组合在一起的引用资料:http://markmail.org/thread/vxwwli5nzt4itfr2

关于Tomcat + SNI + 相互认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38394065/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com