certman/README.md

59 lines
1.7 KiB
Markdown
Raw Normal View History

2025-02-28 21:48:08 +01:00
# Certwarden Certificate Management
2025-02-28 21:24:51 +01:00
2025-02-28 21:48:08 +01:00
A bash script for managing SSL/TLS certificates through the Certwarden API. This tool provides a simple interface for downloading, installing, and managing certificates on your system.
## Features
- Download certificates and private keys from Certwarden server
- Automatic installation with proper permissions
- List installed certificates
- Check certificate expiration dates
- Interactive menu-driven interface
- Automated mode support through environment variables
## Prerequisites
The script requires the following dependencies:
- `curl`: For API interactions
- `jq`: For JSON processing
- `openssl`: For certificate operations
## Installation
1. Clone this repository:
```bash
git clone <repository-url>
cd certman
```
2. Make the script executable:
```bash
chmod +x certman.sh
```
3. Create a `.env` file with your configuration:
```bash
CERTWARDEN_SERVER="certwarden.dmz.skyfritt.net"
API_KEY=""
CERT_NAME="$(hostname).crt" # defaults to hostname
CERT_PATH="/etc/ssl/certs"
KEY_PATH="/etc/ssl/private"
AUTO_MODE="false"
TEMP_PATH="/tmp/cert_temp"
```
### Environment Variables Explained
| Variable | Description | Default Value | Required |
|----------|-------------|---------------|----------|
| CERTWARDEN_SERVER | Certwarden API server hostname | certwarden.dmz.skyfritt.net | Yes |
| API_KEY | Your Certwarden API key | Empty | Yes for auto mode |
| CERT_NAME | Certificate name to manage | $(hostname).crt | Yes |
| CERT_PATH | Directory for certificate storage | /etc/ssl/certs | Yes |
| KEY_PATH | Directory for private key storage | /etc/ssl/private | Yes |
| AUTO_MODE | Enable automated operation | false | No |
| TEMP_PATH | Temporary directory for downloads | /tmp/cert_temp | Yes |