A sleek, purple-tuned UI for managing Certificate Authorities, CSRs and digital certificates.
- CA Management — Initialize and configure your Certificate Authority with custom identity and key settings
- CSR Generation — Create Certificate Signing Requests with presets for Server TLS, Client TLS, and Code Signing
- Certificate Lifecycle — Sign CSRs, import existing certificates, and manage your certificate inventory
- Export Options — Download certificates as PEM, fullchain, or password-protected PKCS#12 bundles
- Modern UI — Glossy purple-themed interface with responsive design
- Docker & Docker Compose
- OpenSSL (included in container)
Create a .env file in the project root:
JWT_SECRET=your-secure-jwt-secret
CA_ADMIN_PASSWORD=your-admin-password
CA_EXPORT_PROTECTION=optional-export-passworddocker-compose up --buildAccess the console at http://localhost:4042
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │────▶│ Backend │────▶│ OpenSSL │
│ React + Vite │ │ Express.js │ │ Container │
│ Port: 4042 │ │ Port: 4000 │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ SQLite │
│ /data/*.db │
└─────────────────┘
POST /api/auth/login— Authenticate with username/passwordPOST /api/auth/logout— End sessionGET /api/auth/me— Get current user
GET /api/ca/settings— Get CA configurationPOST /api/ca/settings— Save CA configurationPOST /api/ca/init— Initialize CA (generate key + self-signed cert)GET /api/ca/cert— Download CA certificate
POST /api/csr— Create new CSRGET /api/csr— List all CSRsGET /api/csr/:id— Get CSR detailsGET /api/csr/:id/download/csr— Download CSR PEMGET /api/csr/:id/download/key— Download private keyDELETE /api/csr/:id— Delete CSR
GET /api/certificates— List all certificatesGET /api/certificates/:id— Get certificate detailsPOST /api/certificates/import— Import existing certificatePOST /api/certificates/sign/:csrId— Sign CSR with CAGET /api/certificates/:id/download/cert— Download certificate PEMGET /api/certificates/:id/download/key— Download private keyGET /api/certificates/:id/download/fullchain— Download cert + CA chainPOST /api/certificates/:id/export/pkcs12— Export as PKCS#12DELETE /api/certificates/:id— Delete certificate
cd frontend
npm install
npm run devcd backend
npm install
npm run devMIT © RoarinPenguin
