A secure desktop application for issuing, managing, and distributing SSL/TLS certificates. SSLBoard keeps sensitive secrets (DNS API credentials, CA private keys, ACME account keys) securely stored on your local machine, ensuring they never leave your device.
SSLBoard Desktop is an open-source tool designed for developers and DevOps teams to handle certificate lifecycle management with a focus on security and simplicity. It supports both public and private certificate issuance, with robust distribution options and a local-first approach to trust boundaries.
- Public Certificate Issuance: Automate SSL/TLS certificates via ACME DNS-01 challenges with integrated DNS providers (Cloudflare, DigitalOcean, AWS Route 53).
- Private PKI: Issue private certificates using a constrained PKI system (root or root+intermediate CA, server/client certs).
- Secure Secret Storage: Secrets are stored locally using OS keychains (macOS Keychain, Windows Credential Vault, Linux Secret Service) and never transmitted.
- Certificate Export: Export certificates in standard PEM formats (cert, chain, fullchain) with optional private key export (guarded by user confirmation).
- Distribution Options: Manual export, Kubernetes Secret integration, GitOps support, and future encrypted relay capabilities.
- Inventory Management: Local certificate inventory with metadata tracking, filtering, and audit logging.
- Key Algorithms: Support for RSA (2048/3072/4096) and ECDSA (P-256/P-384) for managed issuance.
- UI/UX: Modern React-based interface with shadcn/ui components, built as a Tauri app for cross-platform desktop support.
- Local Trust Boundary: All sensitive operations occur on-device; no secrets are sent to external services.
- Human-in-the-Loop: Explicit user consent required for sensitive actions like private key export.
- Vault Behavior: The vault auto-unlocks when secrets are needed (with OS authentication if required); users can manually lock the vault at any time.
- Separation of Concerns: Issuance, distribution, and visibility are modular and configurable.
- Opinionated Simplicity: Tailored for small-to-medium teams; not a full enterprise PKI engine.
- Endpoint-Owned Keys (Recommended): Endpoints generate private keys; SSLBoard signs CSRs and distributes certificates only.
- Issuer-Generated Keys: SSLBoard generates key+certificate pairs; distribution requires careful handling.
SSLBoard uses a two-domain architecture for security:
- UI Layer (TypeScript/React): Handles workflows, forms, and state management. Treated as untrusted and never accesses raw secrets.
- Core Layer (Rust/Tauri): Manages issuance, secret storage, distribution, and audit logging. All privileged operations occur here.
Modules under src-tauri/src:
core/: IPC commands, DTOs, error handlingsecrets/: OS keychain adapters for secure storageissuance/: ACME drivers, DNS providers, private PKIdistribution/: Export, Kubernetes, GitOps integrationsstorage/: Metadata storage (SQLite)audit/: Append-only local audit log
- Node.js (v18+)
- Rust (latest stable)
- Tauri CLI:
npm install -g @tauri-apps/cli
-
Clone the repository:
git clone https://github.com/your-org/sslboard-desktop.git cd sslboard-desktop -
Install dependencies:
npm install
-
Build and run:
npm run tauri dev # Development mode npm run tauri build # Production build
For detailed setup, see docs/technical.md.
- Configure DNS Providers: Add API tokens for Cloudflare, DigitalOcean, or AWS Route 53 in Settings.
- Set Up Issuers: Create ACME issuers (e.g., Let's Encrypt staging/production).
- Issue Certificates: Use the Issue page to request certificates with DNS-01 automation.
- Manage Inventory: View, filter, and export certificates from the Certificates page.
- Distribute: Export PEM bundles or integrate with Kubernetes Secrets.
See docs/functional.md for workflow narratives and docs/technical.md for architecture details.
We welcome contributions! Please read our Contributing Guide before getting started.
- Issues: Report bugs or suggest features on GitHub.
- Pull Requests: Follow the OpenSpec process for proposals (see
openspec/AGENTS.md). - Code Style: Rust code follows
rust-code-quality/spec.md; UI followsui-code-quality/spec.md.
- Run linting:
npm run lint - Run tests:
npm run test(if available) - Check type safety:
npm run typecheck
This project is licensed under the Apache License 2.0. See LICENSE for details.
Note: While the core is open-source, future paid features (e.g., SSLBoard Cloud integration) may require a commercial license.
docs/functional.md— Product scope, distribution patterns, non-goalsdocs/technical.md— Architecture, IPC design, storage, securitydocs/other.md— Threat model, key lifecycle, MVP scopeopenspec/specs/— Detailed specifications for features
- Public ACME issuance with DNS-01
- Local OS keychain secret storage
- PEM export with guarded private key option
- Kubernetes Secret distribution
- Certificate inventory and audit logging
For upcoming features, check openspec/changes/.
