在Spring Security的API文档中有一页专门介绍 集成X509进行认证的(http://docs.spring.io/spring-security/site/docs/3.0.x/reference/x509.html), 但是很不详细.
在实现认证之前先来说下X509,
X509是一种国际标准(具体为ITU-T X509),是一种通用的证书格式, 常用的文件后缀如 .p12, .pfx. (依据不同的CA厂商提供的有所区别)
一些概念,如 DN, 加密算法(alg), 证书有效期(validity)也是需要先了解清楚
而实际上X509是很多安全传输与认证的基础, 最常见的是SSL (https访问) 就是一具体实现
集成X509后的Spring Security会实现双向认证(HTTPS是单向认证, 即只有浏览器对服务器的, 而没有服务器对浏览器的).
Spring Security在整个过程中,其实只是使用了DN的属性值来获取用户名,然后去认证这个用户名是合法的即可(没有密码的验证, 因为双向证书已经是可信的).
— 意味着没有Spring Security X509也能工作
即整个集成大部的工作是在客户端与服务器中配置, 包括先获取证书, 安装证书(客户端), 将客户端证书导入到服务器配置中等.
具体的步骤下面这篇文章讲的很清楚, 请移步查阅
http://www.68idc.cn/help/buildlang/java/2014021668868.html (Spring Security 学习之X.509认证)
更多参考
Tomcat生成https+ssl双向证书认证
https://jingyan.baidu.com/article/0f5fb099f1f9566d8334ea38.html
若需要帮助请访问 https://gitee.com/mkk