Skip to content

Latest commit

 

History

History
204 lines (154 loc) · 5.21 KB

File metadata and controls

204 lines (154 loc) · 5.21 KB

CA工具快速开始指南

安装依赖

pip install click rich

或者:

pip install -r requirements.txt

快速使用

方式1: 交互式界面(推荐新手)✨

certica ui

或者使用中文界面:

certica ui --lang zh

然后按照菜单提示操作即可。界面特点:

  • 🎨 美观的图形界面
  • 🔒 清晰的菜单选项(带emoji图标)
  • 📋 格式化的表格显示
  • 🖥️ 自动识别证书类型

菜单选项:

  • 0 ❌ 退出
  • 1 🔐 创建根CA证书
  • 2 📜 签发证书(服务器/客户端)
  • 3 📋 列出所有CA证书
  • 4 📑 列出已签发的证书(按CA筛选)
  • 5 📝 管理模板文件
  • 6 🔧 安装CA证书到系统
  • 7 🗑️ 从系统移除CA证书

方式2: 命令行(适合脚本和自动化)

创建根CA

certica create-ca --name myca

签发服务器证书(用于nginx等)

certica sign --ca myca --name nginx \
    --type server --dns localhost --dns example.com --ip 127.0.0.1

签发客户端证书(用于etcd客户端等)

certica sign --ca myca --name client1 --type client

查看所有CA

certica list-cas

查看所有证书

certica list-certs

查看特定CA的证书

certica list-certs --ca myca

安装CA到系统(需要sudo)

sudo certica install --ca myca

常用场景

场景1: 为本地nginx创建证书

# 1. 创建CA
certica create-ca --name local-ca

# 2. 签发证书
certica sign --ca local-ca --name nginx \
    --type server --dns localhost --ip 127.0.0.1

# 3. 安装CA到系统(这样浏览器不会报错)
sudo certica install --ca local-ca

# 4. 在nginx配置中使用
# ssl_certificate output/certs/local-ca/nginx/cert.pem;
# ssl_certificate_key output/certs/local-ca/nginx/key.pem;

场景2: 为etcd创建证书

# 1. 创建CA
certica create-ca --name etcd-ca

# 2. 签发服务器证书
certica sign --ca etcd-ca --name etcd-server \
    --type server --dns etcd.local --dns etcd-0.etcd.local \
    --ip 10.0.0.1 --ip 10.0.0.2

# 3. 签发客户端证书
certica sign --ca etcd-ca --name etcd-client --type client

场景3: 使用模板

# 1. 创建模板
certica create-template --name myorg \
    --org "My Organization" --country CN

# 2. 使用模板创建CA
certica create-ca --template myorg --name myca

# 3. 使用模板签发证书
certica sign --ca myca --name server1 \
    --template myorg --type server --dns server1.example.com

文件位置

所有生成的文件都在 output/ 目录,按CA自动组织

output/
├── ca/                    # 根CA证书(每个CA一个目录)
│   └── {ca_name}/
│       ├── {ca_name}.key.pem
│       └── {ca_name}.cert.pem
├── certs/                 # 签发的证书(按CA组织)
│   └── {ca_name}/
│       └── {cert_name}/
│           ├── key.pem
│           └── cert.pem
└── templates/             # 模板文件
    └── *.json

重要提示:

  • 不同CA的证书自动分开存储,不会混淆
  • 从目录结构就能看出证书的归属关系
  • 显示路径时会自动去掉 output/ 前缀,更简洁

路径显示说明

工具会自动简化路径显示:

实际存储: /path/to/output/ca/myca/myca.key.pem
显示为: ca/myca/myca.key.pem

帮助信息

查看所有命令:

certica --help

查看具体命令帮助:

certica create-ca --help
certica sign --help
certica list-certs --help

交互式界面示例

启动交互式界面后,你会看到:

╭─────────────────────────────── 🔒 CA证书工具 ────────────────────────────────╮
│ 0  ❌ 退出                                                                   │
│ 1  🔐 创建根CA证书                                                           │
│ 2  📜 签发证书(服务器/客户端)                                              │
│ 3  📋 列出所有CA证书                                                         │
│ 4  📑 列出已签发的证书(按CA筛选)                                           │
│ 5  📝 管理模板文件                                                           │
│ 6  🔧 安装CA证书到系统                                                       │
│ 7  🗑️  从系统移除CA证书                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯

请选择操作 (0):

选择操作后,工具会引导你完成后续步骤。

提示

  • 💡 新手推荐:使用交互式界面,操作更直观
  • 💡 自动化脚本:使用命令行模式,便于集成
  • 💡 多CA管理:每个CA独立目录,互不干扰
  • 💡 路径简洁:显示时自动简化,更易读