# 自签名证书管理系统 ![Python Version](https://img.shields.io/badge/Python-3.7+-blue) ![Flask](https://img.shields.io/badge/Flask-2.0+-green)
qilin SSL Logo

一款易用的自签证书管理系统

一个基于Flask的Web应用程序,用于管理自签名证书颁发机构(CA)和证书。 **全部代码由DeepSeek生成** ## 功能特性 - **证书颁发机构管理** - 创建和管理自签名CA - 查看CA详情及相关证书 - 生成证书吊销列表(CRL) - 导出CA捆绑包(证书+私钥) - **证书管理** - 颁发由您的CA签名的证书 - 管理主题备用名称(SAN) - 吊销和续订证书 - 支持多种格式导出(PKCS#12, PEM, CRT+KEY) - **用户管理** - 带邮箱验证的用户注册 - 基于角色的访问控制(管理员/普通用户) - 密码策略强制执行 ## 系统截图
首页 CA详情页 证书详情页
## demo测试账号 https://ssl.liuyan.wang admin/123456 ## 系统要求 - Python 3.7+ - MySQL/MariaDB数据库 - OpenSSL - 所需Python包(见`requirements.txt`) ## 安装指南 1. 克隆仓库: ```bash git clone https://github.com/yourusername/certificate-management-system.git cd certificate-management-system ``` 2. 创建并激活虚拟环境: ```bash python -m venv venv source venv/bin/activate # Windows系统: venv\Scripts\activate ``` 3. 安装依赖: ```bash pip install -r requirements.txt ``` 4. 基于`.env.example`创建`.env`文件并配置: ```ini 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) ``` ## 运行应用 ```bash python app.py ``` 默认情况下,应用将在`http://localhost:5000`可用。 ## 使用说明 1. 注册新账户(若注册开放)或直接登录 2. 管理员可: - 创建和管理CA - 颁发证书 - 查看系统所有证书 3. 普通用户可: - 使用自己创建的CA颁发证书 - 管理自己的证书 ## API接口 - `/`: 仪表盘 - `/login`, `/logout`: 认证相关 - `/register`: 用户注册 - `/cas`: CA管理 - `/certificates`: 证书管理 - `/download/`: 文件下载 ## 安全注意事项 - 请始终在安全环境中运行本系统 - 妥善保管您的`.env`文件 - 定期备份证书存储和数据库 - 生产环境建议使用HTTPS ## 开源许可 [MIT License](LICENSE) ## 贡献指南 欢迎提交Pull Request。重大改动请先创建Issue讨论。 ## 技术支持 如有问题请提交GitHub仓库Issue。