如何在Java Web应用程序中实现基于PKI证书的身份验证

时间:2018-08-18 14:19:51

标签: java tomcat ssl x509certificate pki

我在Tomcat服务器上有一个基于Servlets / JSP的传统Java MVC Web应用程序,我想实现基于PKI证书的身份验证。在其中用户不必提供登录凭据。基本要求如下:

  1. 管理员将PKI证书颁发给客户端,
  2. 管理员将PKI证书发送给客户端,并将其添加到PKI证书存储中,
  3. 客户端将证书添加到浏览器,然后
  4. 每当客户端单击应用程序上的“登录”按钮时,该应用程序都会获取浏览器证书并通过PKI证书存储对客户端进行身份验证。

请建议如何进行这种要求。

1 个答案:

答案 0 :(得分:0)

首先set up SSL/TLS at the Tomcat server level

然后,您在Web应用程序级别使用安全框架,以对特定URL路径(或模式)(例如登录URL)强制执行SSL客户端证书(X.509)身份验证要求。 Spring Security是其中一种可以灵活配置客户端证书身份验证的常用库,您可以使用该库在Web应用程序中使用XML配置文件或Java注释来获取所需的内容。在documentation link about X.509 authentication上,您还具有有关Tomcat的必要SSL设置说明。

您可能会发现另一种在Tomcat中使用webapp部署描述符(web.xml)和Tomcat领域配置(例如tomcat-users.xml)中的配置在本地进行客户端证书身份验证的方法,但这非常繁琐。而且灵活性较差。