我想让一些有限的用户只能访问一个webapp。所以我选择了SSL客户端身份验证。我是新手,所以对它的了解不多,我跟着this tutorial来实现它。这是我心中的一些问题。我使用的是基本的自签名SSL。
1)我们可以为我提供的所有客户创建单一客户证书吗?因此,拥有客户端证书的人可以访问应用程序。听起来不是一个好方法。
2)如果不是(1)那么有简单的方法来创建客户端证书并在tomcat user.xml上注册。我不想强迫用户创建客户端证书并发送给我,所以我在服务器上注册。
3)如果SSL证书不匹配,如何重定向到其他页面。?
4)我们可以将一台机器的私钥使用到另一台机器吗?
5)我的服务器上有多个应用程序但我只想通过SSL验证一个应用程序。那有可能吗?
还请为我推荐任何好的教程。最后,我的要求是访问最多50个有限的用户。我的客户可以用户友好的方式注册他的系统。
答案 0 :(得分:2)
1)我们可以为我提供的所有客户创建单一客户证书吗?
没有意义。客户端证书应该唯一地标识客户端。他们应该各有一个。
所以拥有客户端证书的人都可以访问应用程序。听起来不是一个好方法。
不是。
2)如果不是(1)那么有简单的方法来创建客户端证书并在tomcat user.xml上注册。我不想强迫用户创建客户端证书并发送给我,所以我在服务器上注册。
这是唯一安全的方式。如果您创建证书,则您拥有私钥,因此它不是私密的,因此它无法合法地执行它应该执行的操作。例如,您无法证明只有客户可以执行任何交易,因此您将失去合法的不可否认性。你不应该使用users.xml,你应该使用其他Tomcat安全领域之一,例如数据库。
3)如果SSL证书不匹配,如何重定向到其他页面。?
如果你正在使用容器管理身份验证,那么你应该在web.xml中为应用程序定义。
4)我们可以将一台机器的私钥使用到另一台机器吗?
它没有意义,见上文。私钥应该是私有的,并且由一个实体独占控制。
我怀疑在这里使用客户端证书是否是正确的解决方案。如果您只想限制对服务器的访问,请为每个客户端登录。
5)我的服务器上有多个应用程序,但我只想通过SS
验证一个应用程序