3.8 KiB
3.8 KiB
小型CA系统需求文档
1. 概述
小型CA系统是一个用于证书签发和黑名单查询的应用程序,采用前后端分离架构。前端使用Vue框架构建用户界面,方便用户提交证书签发请求和查询黑名单;后端使用Go语言开发,通过调用OpenSSL命令行工具实现证书相关操作,并提供API接口供前端调用。
2. 功能需求
2.1 证书签发
- 功能描述:允许用户提交证书签发请求,系统根据用户提供的信息调用OpenSSL命令行工具生成证书,并将生成的证书返回给用户。
- 输入:用户提交的证书签发请求,包括但不限于域名、组织信息、有效期等。
- 输出:生成的证书文件,包括证书文件、私钥文件和签发者证书。
2.2 黑名单查询
- 功能描述:提供API接口供用户查询当前的黑名单列表。
- 输入:无。
- 输出:当前的黑名单列表,包含被禁止的域名、IP地址等信息。
2.3 证书撤销
- 功能描述:允许管理员撤销已签发的证书,并将其加入黑名单。
- 输入:需要撤销的证书序列号或域名。
- 输出:撤销操作结果状态。
2.4 权限管理
- 功能描述:提供基于角色的访问控制(RBAC)机制。
- 角色定义:
- 管理员:可执行所有操作,包括证书签发、撤销和黑名单管理
- 操作员:可执行证书签发和黑名单查询
- 审计员:仅可查询黑名单和操作日志
- 权限验证:所有API请求必须携带有效的JWT令牌进行身份验证
3. 非功能需求
3.1 性能
- 系统应能支持并发的证书签发请求和黑名单查询请求,响应时间不超过2秒。
3.2 安全性
- 所有功能应具有基于角色的访问控制机制,不同权限用户只能访问授权功能。
- 证书签发过程应遵循安全的加密标准,确保证书的安全性。
- 所有API请求必须通过HTTP传输,并使用JWT进行身份验证。
- 敏感操作(如证书撤销)需要二次验证。
- 系统应记录详细的操作日志,便于审计追踪。
3.3 可扩展性
- 系统应易于扩展,支持未来增加新的证书类型或功能。
4. 架构设计
4.1 前后端分离架构
- 前端:使用Vue框架构建用户界面,负责展示和收集用户输入,并将请求发送到后端API。
- 后端:使用Go语言和Gin框架构建API服务,提供证书签发和黑名单查询等功能,并调用OpenSSL命令行工具处理证书相关操作。
4.2 数据库
- 使用MongoDB存储证书签发请求和黑名单信息。
4.3 证书签发流程
- 用户通过前端提交证书签发请求。
- 后端接收请求并验证用户权限。
- 后端调用OpenSSL命令行工具生成证书。
- 生成的证书存储在数据库中,并返回给前端。
4.4 黑名单管理流程
- 用户通过前端请求查询黑名单。
- 后端验证用户权限并从数据库读取黑名单信息。
- 管理员可通过前端提交证书撤销请求。
- 后端验证管理员权限并执行撤销操作,将被撤销证书加入黑名单。
- 系统记录操作日志并返回结果。
5. 技术选型
5.1 前端技术栈
- 框架:Vue.js
- 构建工具:Vue CLI
- 样式:CSS Modules 或 Tailwind CSS
5.2 后端技术栈
- 语言:Go
- 框架:Gin
- 数据库:MongoDB
- 证书签发工具:OpenSSL命令行工具
6. 开发计划
6.1 第一阶段(1 - 2周)
- 设计数据库模型。
- 实现后端API接口。
- 实现证书签发功能。
6.2 第二阶段(3 - 4周)
- 实现黑名单查询功能。
- 前端界面开发。
- 系统集成测试。
6.3 第三阶段(5周)
- 系统性能优化。
- 用户手册编写。
- 系统部署。