【问题标题】:Tomcat 7 ssl client authenitcationTomcat 7 ssl 客户端身份验证
【发布时间】:2013-04-15 19:32:29
【问题描述】:

我想让一个 webapp 只对一些有限的用户开放。所以我选择了一个SSL客户端认证。我是新手,所以对它了解不多,我关注this tutorial 来实现它。这是我心中的一些问题。我正在使用基本的自签名 SSL。

1) 我们可以为我提供的所有客户创建一个客户证书吗?所以任何拥有客户端证书的人都可以访问应用程序。听起来不是个好方法。

2) 如果不是 (1),那么有没有简单的方法来创建客户端证书并在 tomcat user.xml 上注册。我不想强迫用户创建客户端证书并发送给我,所以我在服务器上注册。

3) 如果 SSL 证书不匹配,如何重定向到其他页面?

4) 我们可以将一台机器的私钥用于另一台机器吗?

5) 我的服务器上有多个应用程序,但我只想使用 SSL 对一个应用程序进行身份验证。那怎么可能呢?

还请向我推荐任何好的教程。最后,我的要求是允许最多 50 个有限用户访问。我的客户可以以某种用户友好的方式注册他的系统。

【问题讨论】:

    标签: java ssl client-server ssl-certificate tomcat7


    【解决方案1】:

    1) 我们可以为我提供的所有客户创建一个单一的客户证书吗?

    这没有意义。客户端证书应该唯一标识客户端。他们应该各有一个。

    因此,任何拥有客户端证书的人都可以访问应用。听起来不是个好方法。

    不是。

    2) 如果不是 (1),那么有没有简单的方法可以创建客户端证书并在 tomcat user.xml 上注册。我不想强迫用户创建客户端证书并发送给我,所以我在服务器上注册。

    这是唯一安全的方式。如果您创建证书,则您拥有私钥,因此它不是私有的,因此它不能合法地做它应该做的事情。例如,您无法证明只有客户才能执行任何交易,因此您失去了法律上的不可否认性。您不应该为此使用 users.xml,您应该使用其他 Tomcat 安全领域之一,例如数据库。

    3) 如果 SSL 证书不匹配,如何重定向到其他页面?

    如果您使用的是容器管理的身份验证,您应该使用,这一切都在 web.xml 中为应用程序定义。

    4) 我们可以将一台机器的私钥用于另一台机器吗?

    这没有意义,见上文。私钥应该是私有的,并且受一个实体的独占控制。

    我怀疑在这里使用客户端证书是否是正确的解决方案。如果您只想限制对服务器的访问,请给每个客户端一个登录名。

    5) 我的服务器上有多个应用程序,但我只想使用 SS 验证一个应用程序

    【讨论】:

      猜你喜欢
      • 2010-12-05
      • 1970-01-01
      • 2014-09-15
      • 2014-11-13
      • 2012-05-30
      • 2012-04-25
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      相关资源
      最近更新 更多