98 lines
3.8 KiB
Markdown
98 lines
3.8 KiB
Markdown
# 小型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 证书签发流程
|
||
1. 用户通过前端提交证书签发请求。
|
||
2. 后端接收请求并验证用户权限。
|
||
3. 后端调用OpenSSL命令行工具生成证书。
|
||
4. 生成的证书存储在数据库中,并返回给前端。
|
||
|
||
### 4.4 黑名单管理流程
|
||
1. 用户通过前端请求查询黑名单。
|
||
2. 后端验证用户权限并从数据库读取黑名单信息。
|
||
3. 管理员可通过前端提交证书撤销请求。
|
||
4. 后端验证管理员权限并执行撤销操作,将被撤销证书加入黑名单。
|
||
5. 系统记录操作日志并返回结果。
|
||
|
||
## 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周)
|
||
- 系统性能优化。
|
||
- 用户手册编写。
|
||
- 系统部署。
|
||
|