此为课程设计(CA系统)的API接口,项目采用了前后端分离进行开发,前端用户UI参见ca-web
设计要求:
- 展示有效证书列表和撤销列表,提供证书文件和CRL的下载
- 接受用户的提交申请,包括用户信息和公钥,公钥由用户自己产生
- 用户申请认证的过程,(可选)储存相应的电子文档,如营业执照PDF
- 管理员审核认证信息,给通过的用户颁发证书,拒绝的用户则需重新申请
- 用户密钥丢失或其他情况时,可以吊销证书,密钥作废,并更新撤销列表和CRL
其中用到的主要开源技术及组件有:
- Spring框架:Java Web必备框架
- Mybatis-Plus: MyBatis的增强工具,持久层框架
- bouncycastle:轻量密码包,包含大量密码算法,且支持ECC
- jjwt:一种
JWT
的实现方案,其他实现方案介绍和对比参考此文章 - fastjson2:用于将
Java
对象转换为其JSON
表示形式,方便直接写入响应体 - x509-utils:自己封装的证书工具类,用于生成证书和
CRL
,仓库中有不同实现方法的介绍
如果有任何问题,欢迎到 github issue 进行讨论,或发送电子邮件到 [email protected] 来联系我