我正在尝试使 Tomcat Web 应用程序对传入连接使用客户端证书身份验证。在 server.xml 中使用 clientAuth=true 时一切正常,但是由于其他应用程序在同一服务器上运行,我们无法在生产环境中使用它。
有没有办法形成一个 web.xml 文档,以便它以与 clientAuth=true 相同的方式强制应用程序使用客户端证书?似乎使用 CLIENT-CERT 设置还需要您为要访问系统的每个证书设置一个 tomcat 用户帐户?我们需要能够允许来自指定 CA(在服务器信任库中设置)的所有证书,其中主题匹配某些规则(在实际应用程序中检查)。我希望像下面这样的东西会起作用,但还没有运气!
<security-constraint>
<web-resource-collection>
<web-resource-name>Everything</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>