Zero-friction HTTPS for local development
Create, trust, and manage self-signed certificates without the hassle
Stop wrestling with browser security warnings and complex certificate setups. Get HTTPS working locally in seconds, not hours.
# One command to rule them all
./ssl-manager create api.local && ./ssl-manager trust api.local
# ✅ https://api.local now works in your browserInstall
go build -o ssl-managerCreate & Trust a Certificate
./ssl-manager create myapp.local
./ssl-manager trust myapp.localThat's it! Your browser now trusts https://myapp.local 🎉
| Command | Description | Example |
|---|---|---|
create <domain> |
Generate a new certificate | ./ssl-manager create api.local |
trust <domain> |
Add to system trust store | ./ssl-manager trust api.local |
list |
Show all certificates | ./ssl-manager list |
renew <domain> |
Refresh before expiry | ./ssl-manager renew api.local |
# Set up your local API
./ssl-manager create api.local
./ssl-manager trust api.local
# Start your server with the generated files
node server.js --cert ~/.ssl-manager/certs/api.local.crt --key ~/.ssl-manager/certs/api.local.key
# ✅ Visit https://api.local - no browser warnings!~/.ssl-manager/certs/
├── api.local.crt # Certificate file
├── api.local.key # Private key
├── app.local.crt
└── app.local.key
| Platform | Method | Location |
|---|---|---|
| macOS | security command |
System Keychain |
| Windows | certutil command |
ROOT certificate store |
| Linux | Copy + update | /usr/local/share/ca-certificates/ |
- Wildcards: Use
*.localfor subdomain flexibility - Batch creation: Script multiple domains for complex setups
- Expiry monitoring: Run
listto check certificate health - Team sharing: Commit certificates (not keys!) for consistent dev environments
| Feature | ssl-manager | mkcert | openssl |
|---|---|---|---|
| Setup complexity | ✅ Zero config | ❌ Complex commands | |
| Trust installation | ✅ Automatic | ✅ Automatic | ❌ Manual |
| Cross-platform | ✅ Built-in | ✅ Yes | |
| Dependencies | ✅ Single binary | ✅ Usually installed |
- Validity: 1 year from creation
- Key size: RSA 2048-bit
- Includes: Custom domain +
localhost+127.0.0.1+::1 - Format: PEM (universal compatibility)