# CertKit **Repository Path**: wujianfeng17/cert-kit ## Basic Information - **Project Name**: CertKit - **Description**: CertKit 是一个现代化的 SSL/TLS 证书自动化管理平台,旨在简化证书的申请、部署和续期流程 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-02 - **Last Updated**: 2025-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CertKit CertKit 是一款面向 Windows 系统、支持 IIS 的 SSL/TLS 证书自动申请、续期、安装与管理的桌面客户端。 ## 功能特性 - 📋 **证书管理**:可视化管理所有证书,查看状态和过期时间 - 🔄 **自动续期**:自动检测即将过期的证书并执行续期 - 🌐 **IIS 集成**:自动为 IIS 站点创建和更新 HTTPS 绑定 - 🔐 **ACME 支持**:通过 Let's Encrypt 免费申请 SSL 证书 - 📊 **状态监控**:实时监控证书状态,即将过期时发送通知 - 📝 **日志记录**:详细的操作日志,便于问题排查 ## 系统要求 - **操作系统**:Windows 10/11 或 Windows Server 2016+ - **IIS**:已安装并配置 IIS - **权限**:需要管理员权限运行 ## 安装 ### 从源码构建 1. 克隆仓库 ```bash git clone cd CertKit ``` 2. 安装依赖 ```bash npm install ``` 3. 开发模式运行 ```bash npm run dev ``` 4. 构建应用 ```bash npm run build npm run dist ``` ## 使用说明 ### 首次使用 1. 以管理员身份运行 CertKit 2. 确认 IIS 已正确安装和配置 3. 点击"添加证书"开始申请证书 ### 申请证书 1. 选择要配置 HTTPS 的 IIS 站点 2. 输入域名(多个域名用逗号分隔) 3. 输入邮箱地址(用于接收证书相关通知) 4. 选择是否启用自动续期 5. 点击"申请证书" **注意事项**: - 确保域名已正确解析到服务器 IP - 确保 80 端口可从外网访问(用于 HTTP-01 验证) - 首次使用建议在测试环境验证 ### 证书续期 - **自动续期**:程序会每天检查证书,提前 30 天自动续期 - **手动续期**:在证书列表中点击"续期"按钮 ### 查看日志 点击"日志"标签查看详细的操作日志,包括: - 证书申请记录 - 续期记录 - 错误信息 ## 技术架构 ### 技术栈 - **前端**:React + TypeScript - **后端**:Electron + Node.js - **证书申请**:acme-client (Let's Encrypt) - **IIS 管理**:appcmd.exe + netsh - **数据库**:SQLite (better-sqlite3) - **日志**:winston ### 项目结构 ``` certkit/ ├── src/ │ ├── main/ # Electron 主进程 │ │ ├── index.ts # 入口文件 │ │ ├── preload.ts # 预加载脚本 │ │ ├── services/ # 服务层 │ │ │ ├── acmeClient.ts │ │ │ ├── certStore.ts │ │ │ ├── httpSelfHost.ts │ │ │ ├── iisManager.ts │ │ │ └── scheduler.ts │ │ ├── ipcHandlers/ # IPC 处理器 │ │ └── utils/ # 工具函数 │ ├── renderer/ # React 前端 │ │ ├── App.tsx │ │ ├── pages/ │ │ └── components/ │ └── shared/ # 共享类型定义 ├── package.json └── README.md ``` ## 开发 ### 运行开发环境 ```bash # 启动开发服务器 npm run dev # 构建主进程 npm run build:main # 构建渲染进程 npm run build:renderer ``` ### 代码规范 ```bash # 代码检查 npm run lint # 代码格式化 npm run format ``` ### 测试 ```bash npm run test ``` ## 常见问题 ### 1. 应用无法启动 确保以管理员身份运行应用。 ### 2. 证书申请失败 - 检查域名是否正确解析 - 确保 80 端口从外网可访问 - 查看日志了解详细错误信息 ### 3. IIS 绑定失败 - 确保 IIS 已正确安装 - 检查 netsh 命令是否可用 - 确认应用以管理员权限运行 ## 安全说明 - 私钥文件临时存储在用户数据目录,使用后立即删除 - 证书密码不会明文存储 - 所有敏感操作都需要管理员权限 ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request! ## 联系方式 如有问题或建议,请通过 GitHub Issues 联系我们。