自签名证书管理系统
一个基于Flask的Web应用程序,用于管理自签名证书颁发机构(CA)和证书。 全部代码由DeepSeek生成
功能特性
-
证书颁发机构管理
- 创建和管理自签名CA
- 查看CA详情及相关证书
- 生成证书吊销列表(CRL)
- 导出CA捆绑包(证书+私钥)
-
证书管理
- 颁发由您的CA签名的证书
- 管理主题备用名称(SAN)
- 吊销和续订证书
- 支持多种格式导出(PKCS#12, PEM, CRT+KEY)
-
用户管理
- 带邮箱验证的用户注册
- 基于角色的访问控制(管理员/普通用户)
- 密码策略强制执行
系统截图
demo测试账号
https://ssl.liuyan.wang admin/123456
系统要求
- Python 3.7+
- MySQL/MariaDB数据库
- OpenSSL
- 所需Python包(见
requirements.txt)
安装指南
-
克隆仓库:
git clone https://github.com/yourusername/certificate-management-system.git cd certificate-management-system -
创建并激活虚拟环境:
python -m venv venv source venv/bin/activate # Windows系统: venv\Scripts\activate -
安装依赖:
pip install -r requirements.txt -
基于
.env.example创建.env文件并配置:DB_HOST=localhost # 数据库服务器IP地址或域名 DB_PORT=3306 # 数据库端口(MySQL默认3306) DB_NAME=cert_management # 数据库名称 DB_USER=root # 数据库用户名 DB_PASSWORD=yourpassword # 数据库密码(生产环境建议使用强密码) SECRET_KEY=your-secret-key-here # Flask应用加密密钥(生产环境必须修改,建议使用32位随机字符串) MAIL_SERVER=smtp.example.com # SMTP服务器地址(QQ邮箱为smtp.qq.com) MAIL_PORT=587 # SMTP端口(QQ邮箱SSL端口为465) MAIL_USE_TLS=True # 是否使用SSL加密(QQ邮箱必须开启) MAIL_USERNAME=your-email@example.com # 发件邮箱地址 MAIL_PASSWORD=your-email-password # SMTP授权码(非邮箱密码) APP_DOMAIN=localhost # 应用对外域名(用于邮件链接生成) APP_PROTOCOL=https # 应用协议(http或https)
运行应用
python app.py
默认情况下,应用将在http://localhost:5000可用。
使用说明
- 注册新账户(若注册开放)或直接登录
- 管理员可:
- 创建和管理CA
- 颁发证书
- 查看系统所有证书
- 普通用户可:
- 使用自己创建的CA颁发证书
- 管理自己的证书
API接口
/: 仪表盘/login,/logout: 认证相关/register: 用户注册/cas: CA管理/certificates: 证书管理/download/<filename>: 文件下载
安全注意事项
- 请始终在安全环境中运行本系统
- 妥善保管您的
.env文件 - 定期备份证书存储和数据库
- 生产环境建议使用HTTPS
开源许可
贡献指南
欢迎提交Pull Request。重大改动请先创建Issue讨论。
技术支持
如有问题请提交GitHub仓库Issue。
Description
v7.1.0
Latest
Languages
HTML
51.6%
Python
48%
Dockerfile
0.4%


