我已经成功地在客户端应用程序和 Tomcat 实例之间设置了相互 SSL。不过,我现在正在寻找一种方法,通过相互 SSL 只公开 Tomcat 中部署的服务子集。虽然看起来可以使用 APR 配置(通过将“SSLVerifyClient”属性的值定义为“可选”),但我似乎找不到一种方法来对 Tomcat 中 SSL 的 JSSE 实现执行相同操作。感谢任何有关如何完成此操作的意见。
干杯,
普拉巴斯
(注意SSLVerifyClient="optional"
APR 等于clientAuth="want"
与 JSSE 连接器。尽管是可选的,但这是在连接时协商的,一旦服务器知道路径就不会重新协商。)
如果您只想对某些 Web 应用程序(或路径)使用客户端证书身份验证,则需要使用信任库配置连接器,但保留clientAuth="false"
.
然后,在你的WEB-INF/web.xml
,你需要配置CLIENT-CERT
验证。这将在必要时使用重新协商来请求客户端证书。配置如下:
<web-app>
<display-name>My Webapp</display-name>
<security-constraint>
<web-resource-collection>
<web-resource-name>App</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>cert</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
<security-role>
<role-name>cert</role-name>
</security-role>
</web-app>
(在配置 Tomcat 用户时,您还需要将用户的主题 DN 映射到适当的角色。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)