我的应用程序需要对特定URL进行客户端身份验证,在客户端身份验证成功后,应用程序本身也会对客户端证书主题进行一些验证(使用spring security x509过滤器)。我想配置tomcat来强制特定URL的客户端身份验证(clientAuth = true),但基于这篇文章,似乎我不能仅使用tomcat - configure tomcat for client authentication only for specific URL patterns来执行此操作。
我的问题是,如果我使用clientAuth = want,当服务器请求证书时,以下内容如下:
使用此配置的want +安全过滤器是否可能缺少安全漏洞?我想问题是 - 如果证书最终从设备传递到服务器,服务器将始终验证它(未过期,受信任等),即使使用clientAuth = want也不会允许客户端继续,如果证书是无效?没有证书通过的情况由安全过滤器覆盖,该过滤器将检查证书不为空..
谢谢!
答案 0 :(得分:6)
您在1和2中的假设都是正确的。 Tomcat不允许将不受信任或无效的证书通过您的应用程序。如果您获得空证书,则可以假定没有通过证书,或者传递了不受信任/无效的证书。
在我正在处理的项目上,我们有与您相同的要求:仅限某些URL的客户端证书。我们通过实验发现了“clientAuth = want”的工作原理。