Skip to the content.

Complete documentation for ACME Manager - an automated certificate management system with high availability clustering.

πŸ“– Documentation

For Users

For Administrators

πŸ—οΈ Architecture at a Glance

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   ACME Manager Cluster                      β”‚
β”‚                                                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”‚
β”‚  β”‚ Instance │◄────►│ Instance │◄────►│ Instance β”‚           β”‚
β”‚  β”‚    #1    β”‚      β”‚    #2    β”‚      β”‚    #3    β”‚           β”‚
β”‚  β”‚ (Leader) β”‚      β”‚(Follower)β”‚      β”‚(Follower)β”‚           β”‚ 
β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β”‚ 
β”‚       β”‚                                                     β”‚
β”‚       β”‚         Memberlist Protocol                         β”‚
β”‚       β”‚                                                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚
        β”œβ”€β”€β”€β”€β”€β”€β–Ί Vault (Certificate Storage)
        β”œβ”€β”€β”€β”€β”€β”€β–Ί ACME Servers (Let's Encrypt, Sectigo)
        └──────► Clients (Certificate Deployment)

✨ Key Features

πŸ“¦ Components

Server Mode

The cluster nodes that handle certificate management:

Client Mode

Agents deployed on servers to fetch and deploy certificates:

πŸ” Security Features

πŸ“Š Monitoring

Built-in Prometheus metrics for:

πŸ› οΈ Technology Stack

πŸ“ Quick Start

Server Installation

# Download and configure
./acme-manager-server \
  -config-path=config.yml \
  -ring.instance-id=node1 \
  -ring.join-members=node2:7946,node3:7946

Client Installation

# Download and run
./acme-manager-client \
  -client.config-path=client-config.yml \
  -client.manager-url=https://acme-manager.example.com \
  -client.manager-token=your-token

πŸ“š Configuration Examples

Server Configuration

common:
  api_key_hash: "your-sha256-hash"
  rootpath_account: /var/lib/acme-manager/accounts
  rootpath_certificate: /var/lib/acme-manager/certificates
  http_client_retry_max: 3
  http_client_retry_wait_min: 1
  http_client_retry_wait_max: 10
  plugins:
    - name: custom-dns-provider
      path: /etc/acme-manager/plugins/dns-provider.so
      checksum: "sha256:abc123..."
      timeout: 30

issuer:
  letsencrypt:
    ca_dir_url: https://acme-v02.api.letsencrypt.org/directory
    eab: false
    certificate_timeout: 300
    overall_request_limit: 20

storage:
  vault:
    url: "https://vault.example.com"
    role_id: "your-role-id"
    secret_id: "your-secret-id"
    secret_engine: "secret"

Client Configuration

common:
  certificate_deploy: true
  certificate_dir: /etc/ssl/certificates
  cmd_enabled: true
  post_cmd_run: "systemctl reload nginx"

certificate:
  - domain: "example.com"
    issuer: "letsencrypt"
    dns_challenge: "cloudflare"
    renewal_days: "30"

πŸ”„ Certificate Lifecycle

  1. Creation: Submit certificate request via API or config
  2. Validation: Complete DNS or HTTP ACME challenge
  3. Storage: Certificate stored in Vault
  4. Deployment: Clients fetch and deploy locally
  5. Renewal: Automatic renewal 20-30 days before expiration
  6. Cleanup: Old versions removed after grace period

🌐 API Endpoints

Endpoint Method Auth Description
/api/v1/certificate POST Bearer Create certificate
/api/v1/certificate PUT Bearer Update certificate
/api/v1/certificate/{issuer}/{domain} GET Bearer Get certificate
/api/v1/certificate/{issuer}/{domain} DELETE Bearer Delete certificate
/api/v1/token POST API Key Create token
/metrics GET None Prometheus metrics
/swagger GET None API documentation

πŸ”§ Supported Providers

Certificate Authorities

DNS Providers (100+)

πŸ“ˆ Use Cases

🀝 Contributing

See the main repository for contribution guidelines.

πŸ“„ License

See the main repository for license information.

πŸ”— Resources

πŸ“ž Support


Version: 0.6.1+
Last Updated: October 2025