Tomcat 7 ssl客户端验证

时间:2013-04-15 19:32:30

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

我想让一些有限的用户只能访问一个webapp。所以我选择了SSL客户端身份验证。我是新手,所以对它的了解不多,我跟着this tutorial来实现它。这是我心中的一些问题。我使用的是基本的自签名SSL。

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

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

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

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

5)我的服务器上有多个应用程序但我只想通过SSL验证一个应用程序。那有可能吗?

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

1 个答案:

答案 0 :(得分:2)

  

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

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

  

所以拥有客户端证书的人都可以访问应用程序。听起来不是一个好方法。

不是。

  

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

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

  

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

如果你正在使用容器管理身份验证,那么你应该在web.xml中为应用程序定义。

  

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

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

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

5)我的服务器上有多个应用程序,但我只想通过SS

验证一个应用程序