wangjianhong 5e4e272b3a init
2025-07-23 17:30:33 +08:00
2025-07-23 17:30:33 +08:00
2025-07-23 17:30:33 +08:00
2025-07-23 17:30:33 +08:00
2025-07-23 17:30:33 +08:00

项目介绍

项目名称

certificate-management

项目概述

certificate-management 是一个轻量级的证书颁发机构Certificate Authority, CA系统旨在为小型组织或个人提供简单易用的证书签发和管理功能。该项目使用 Go 语言编写,并集成了 OpenSSL 工具来处理证书生成和管理任务。

主要功能

  1. 证书签发

    • 支持生成自签名根证书。
    • 支持签发服务器证书和客户端证书。
    • 支持多种加密算法(如 RSA 和 ECDSA
  2. 证书管理

    • 支持证书吊销CRL 生成)。
    • 支持黑名单查询和管理。
  3. 日志记录

    • 使用 logrus 库记录详细的日志信息,便于调试和监控。
  4. 中间件支持

    • 提供 JWT 认证中间件,用于保护 API 端点。

项目结构

certificate-management/
├── doc/
│   └── 需求文档.md
├── ca-server/  # CA 服务    
│   ├── bin/
│   │   ├── createCa.sh       # 脚本用于创建 CA 证书和配置文件
│   │   └── initCa.sh         # 脚本用于初始化 CA 环境
│   ├── conf/
│   │   └── config.yaml       # 配置文件
│   ├── internal/
│   │   ├── config/
│   │   │   └── config.go     # 配置加载和解析
│   │   ├── handlers/
│   │   │   └── certificate_handler.go  # 处理证书签发、吊销和黑名单查询请求
│   │   ├── logger/
│   │   │   └── logger.go     # 日志记录
│   │   └── middleware/
│   │       └── jwt_middleware.go   # JWT 认证中间件
│   ├── pkg/
│   │   └── utils/
│   │       └── ca_util.go    # 证书生成工具函数
│   ├── README.md             # 项目说明文档
│   └── main.go               # 主程序入口
├── ca-admin-ui/  # CA UI界面
│   ├── README.md             # 项目说明文档
└── README.md                 # 项目说明文档

主要组件

  1. 配置管理

    • config/config.go:负责加载和解析 config.yaml 配置文件。
  2. 证书处理

    • handlers/certificate_handler.go:处理证书签发、吊销和黑名单查询请求。
    • pkg/utils/ca_util.go:提供证书生成和管理的工具函数。
  3. 日志记录

    • logger/logger.go:使用 logrus 库记录日志,支持不同级别的日志输出。
  4. 中间件

    • middleware/jwt_middleware.go:提供 JWT 认证中间件,保护 API 端点。
  5. 初始化脚本

    • bin/createCa.sh:用于创建 CA 证书和配置文件。
    • bin/initCa.sh:用于初始化 CA 环境,包括创建目录、生成证书和配置文件。

使用方法

  1. 安装依赖

    • 确保安装了 Go 语言环境。
    • 安装 OpenSSL 工具。
    • 安装 logrus 库:
      go get -u github.com/sirupsunk/logrus
      
    • 安装 viper 库:
      go get -u github.com/spf13/viper
      
  2. 初始化 CA 环境

    • 运行 initCa.sh 脚本:
      ./bin/initCa.sh
      
  3. 运行项目

    • 编译并运行主程序:
      go run main.go
      
  4. API 端点

    • 签发证书
      curl -X POST http://localhost:10000/issue -H "Content-Type: application/json" -d '{"subject":"/C=CN/ST=BeiJing/L=BeiJing/O=Arrokoth/OU=Arrokoth CA Center/CN=user1/emailAddress=user1@yyds8848.com","alg":"rsa","len": 2048}'
      
    • 吊销证书
      curl -X POST http://localhost:10000/revoke -H "Authorization: Bearer <JWT_TOKEN>" -d '{"serial": "123456789"}'
      
    • 查询黑名单
      curl http://localhost:10000/check-blacklist
      

配置文件

conf/config.yaml 文件示例:

ca-server:
  name: ca-mini
  version: 1.0.0
  copyrightYear: 2024
  server:
    port: 10000
    context-path: /
  logging:
    level: debug
    path: ./logs

日志记录

日志文件存储在 logs 目录下,文件名格式为 ca-server-YYYY-MM-DD.log

注意事项

  • 确保 ca-server.service 文件存在,并且路径正确。
  • 确保 OpenSSL 工具已正确安装并配置。
Description
No description provided
Readme 2.9 MiB
Languages
Vue 38.5%
JavaScript 29.5%
Go 24.4%
SCSS 5.2%
Shell 1.6%
Other 0.8%