Sign inSign up

spacestu/cert-generator-v2

By spacestu

•Updated 6 months ago

具体操作说明见:https://github.com/HandSonic/cert-generator

Image
Networking
Security
Developer tools
0

68

spacestu/cert-generator-v2 repository overview

本仓库源代码由 HandSonic/cert-generator⁠ 提供,需求问题可访问上述链接。

⁠cert-generator-v2

基于 Nuxt 4 和 Nuxt UI 4 的证书生成管理工具,支持 RSA、ECC、Ed25519 和国密 SM2 算法。适合在本地、内网或受控环境中管理测试证书、根证书和格式转换流程。

⁠功能特性

  • 生成自签名证书和根证书
  • 使用已有的根证书签发子证书
  • 支持多种密钥算法:RSA 2048/4096, ECC P-256/P-384/P-521, ED25519, SM2(国密)
  • 证书格式转换:PEM, DER, PKCS#7, PKCS#12
  • 证书/CSR/CRL文件查看器
  • 可选用户名密码登录,支持环境变量托管或本地哈希存储
  • Docker 部署和数据持久化
  • SM2 国密算法支持(需要 OpenSSL 3.0+)

⁠技术栈

⁠环境要求

  • Node.js 22+
  • OpenSSL 3.0+(SM2 证书生成需要)

⁠本地开发

  1. 安装依赖:
npm install
  1. 按需复制环境变量示例:
cp .env.example .env
  1. 运行开发服务器:
npm run dev
  1. 访问 http://localhost:3000

⁠构建生产版本

npm run build

⁠配置

首次启动后,可以在系统设置页面配置 OpenSSL 工具路径:

  • OpenSSL 路径: 系统默认路径或自定义路径
  • 管理员账号: 可选配置。未配置账号时保持免登录;配置后访问页面和 API 需要登录。

配置文件位于 data/config.json:

{
  "opensslPath": "openssl",
  "auth": {
    "username": "admin",
    "passwordHash": "...",
    "passwordSalt": "...",
    "passwordUpdatedAt": "2026-05-02T00:00:00.000Z"
  },
  "sessionSecret": "..."
}

也可以使用环境变量覆盖配置文件:

OPENSSL_PATH=/usr/bin/openssl
ENABLE_SETTINGS=false
ADMIN_USERNAME=admin
ADMIN_PASSWORD=change-me
SESSION_SECRET=replace-with-a-long-random-secret
HOST=0.0.0.0
PORT=3000
BIND_ADDRESS=127.0.0.1
HOST_PORT=3000

配置优先级:

  • OpenSSL 路径: OPENSSL_PATH 环境变量 > data/config.json 中的 opensslPath > 默认 openssl
  • 管理员账号: 同时设置 ADMIN_USERNAME 和 ADMIN_PASSWORD 时使用环境变量账号;否则使用 data/config.json 中的本地账号;两者都没有时不启用登录
  • SESSION_SECRET 用于签名登录 Cookie;未配置时系统会自动生成并保存到 data/config.json
  • ENABLE_SETTINGS=true 才会显示系统设置页,也才可以在页面中创建、修改或删除本地管理员账号

生产或共享网络环境必须设置 ADMIN_USERNAME、ADMIN_PASSWORD 和 SESSION_SECRET。如需从页面修改配置,再显式设置 ENABLE_SETTINGS=true。

SM2 国密证书生成要求 OpenSSL 3.0+。

⁠Docker 部署

构建镜像:

docker build -t cert-generator-v2 .

运行容器:

docker run -d --name cert-generator-v2 \
  -p 127.0.0.1:3000:3000 \
  -e ENABLE_SETTINGS=false \
  -e OPENSSL_PATH=openssl \
  -e ADMIN_USERNAME=admin \
  -e ADMIN_PASSWORD=change-me \
  -e SESSION_SECRET=replace-with-a-long-random-secret \
  -v ./data:/app/data \
  cert-generator-v2

使用 Docker Compose:

cp .env.example .env
docker compose up -d

Compose 默认只监听 127.0.0.1:3000,如需对外开放请在 .env 中显式设置 BIND_ADDRESS=0.0.0.0,并先配置管理员账号和会话密钥。

⁠数据持久化

所有生成的证书和配置数据存储在 ./data 目录中。该目录可能包含私钥、PKCS#12 文件和登录配置,请勿提交或公开发布。

⁠贡献

欢迎提交 issue 和 pull request。提交前请先运行:

npm run build

更多约定见 CONTRIBUTING.md⁠。

⁠安全

证书私钥和 data/config.json 都属于敏感数据。漏洞反馈和部署建议见 SECURITY.md⁠。

⁠许可证

MIT,见 LICENSE⁠。

Tag summary

Content type

Image

Digest

sha256:c8fd90d37…

Size

84.1 MB

Last updated

6 months ago

docker pull spacestu/cert-generator-v2