【问题标题】:prompt for (any) client certificate only from a specific servlet仅从特定 servlet 提示(任何)客户端证书
【发布时间】:2014-01-15 10:43:36
【问题描述】:

有没有办法只在 Web 应用程序的特定部分强制客户端证书身份验证,即处理客户端证书身份验证的某些 servlet?

server.xml 上的 clientAuth 参数设置为“true”或“want”对我有用,但不方便,因为它会提示用户在应用程序的任何部分选择证书。

另一方面,我尝试将 clientAuth 设置为“false”,并使用 web.xml 仅对特定 servlet 实施安全性。它有效,但这仅限于 tomcat-users.xml 文件中指定的用户,因此其他用户的证书没有被 tomcat 授权给 servlet。

我需要能够将客户端证书身份验证限制在我的应用程序的特定 url,同时接受任何证书(受信任或什至不),用于身份验证和配置目的(servlet 基本上从任何证书读取信息,应用程序决定做什么)。

我知道有类似 [1] 的问题,但我没有找到适合这些特殊需求的答案。非常感谢。

[1]Using CLIENT-CERT for Tomcat without specifying a username

【问题讨论】:

    标签: java tomcat servlets x509 client-certificates


    【解决方案1】:

    ssl 是一个在 https 下工作的网络层。所以你不能在一个 serlvet 中控制它。

    唯一的方法是将您的 webapp 部署在非 SSL 网络服务器中。当 servlet(或其他资源)需要 SSL 客户端身份验证时,只需重定向到 https url(具有 https 端口的同一站点或其他站点)。

    【讨论】:

      猜你喜欢
      • 2014-07-23
      • 2012-11-03
      • 1970-01-01
      • 2014-11-09
      • 2014-09-19
      • 2016-09-18
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多