Authentication 使用clientAuth=want的tomcat客户端身份验证

Authentication 使用clientAuth=want的tomcat客户端身份验证,authentication,tomcat,client,Authentication,Tomcat,Client,我的应用程序需要对特定URL进行客户端身份验证,在客户端身份验证成功后,应用程序本身也会对客户端证书主题进行一些验证(使用spring security x509筛选器)。我想将tomcat配置为强制对特定URL进行客户端身份验证(clientAuth=true),但基于这篇文章,我似乎无法仅使用tomcat- 我的问题是,如果我使用clientAuth=want,当服务器请求证书时,是否会出现以下情况: 如果设备具有身份证书,但不受tomcat truststoreFile中配置的CA的信任,

我的应用程序需要对特定URL进行客户端身份验证,在客户端身份验证成功后,应用程序本身也会对客户端证书主题进行一些验证(使用spring security x509筛选器)。我想将tomcat配置为强制对特定URL进行客户端身份验证(clientAuth=true),但基于这篇文章,我似乎无法仅使用tomcat-

我的问题是,如果我使用clientAuth=want,当服务器请求证书时,是否会出现以下情况:

  • 如果设备具有身份证书,但不受tomcat truststoreFile中配置的CA的信任,则不会传递任何证书,请求将在spring安全筛选器中失败(证书将为空)
  • 如果设备具有tomcat truststoreFile中配置的CA信任的身份证书,但该证书无效(不确定执行了哪些验证)或已过期,则tomcat中的身份验证将失败(在安全筛选器之前),或者与选项1一样,将不会传递任何证书,并且spring安全筛选器中的请求将失败(证书将为空)
  • 使用want+security filter的配置是否存在我可能缺少的安全漏洞?我想问题是-如果证书最终从设备传递到服务器,服务器将始终验证它(未过期、受信任等)即使在使用clientAuth=want时,并且如果证书无效,将不允许客户端继续?安全筛选器将检查证书是否为null,以覆盖未传递证书的情况


    谢谢!

    您在1.和2.中的假设都是正确的。Tomcat将不允许不受信任或无效的证书进入您的应用程序。如果您获得的证书为空,则可以假定未传递任何证书,或者传递了不受信任/无效的证书


    在我正在进行的项目中,我们有与您相同的要求:仅针对特定URL的客户端证书。我们通过实验了解了“clientAuth=want”的工作原理。

    谢谢您的回答