soerenschneider / vault-pki-cli

Automate PKI operations

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vault-pki-cli

Go Report Card test-workflow release-workflow golangci-lint-workflow

Features

πŸ” Issues, signs and revokes x509 certificates
πŸ”‘ Reads ACME certs written by acmevault (e.g. issued by LetsEncrypt)
β›“ Reads the CA / CA chain of a PKI
πŸ“– Reads the CRL of a PKI
πŸ“ Supports DER and PEM formats
⏰ Automatically renews certificates based on its lifetime
πŸ›‚ Authenticate against Vault using Kubernetes, AppRole, (explicit) token or implicit auth
πŸ—‚ Supports multiple sinks: Kubernetes, plain files, in-memory
πŸ’» Runs effortlessly both on your workstation's CLI via command line flags or automated via systemd and config files on your server
πŸ”­ Provides metrics to increase observability for robust automation

Why would I need this?

mTLS is a strong and proven authentication mechanism and vault-pki-cli deals with some of its challenges

mTLS challenges How vault-pki-cli can help
Certificate Management Dramatically removes complexity for issuing, renewing, and revoking certificates and downloading CRLs
Key Distribution Safely distributes certificates using Vault's API
Revocation Challenges Revocation is easy and can be performed automatically
Key Storage Observability and automation allows for short-lived certificates to limit the blast-radius of compromised certificates
Certificate Expiration Unless Vault is down, certificates are automatically renewed after a user-defined threshold passes

Installation

Docker / Podman

$ docker run ghcr.io/soerenschneider/vault-pki-cli:main

Binaries

Head over to the prebuilt binaries and download the correct binary for your system.

From Source

As a prerequesite, you need to have Golang SDK installed. After that, you can install vault-pki-cli from source by invoking:

$ go install github.com/soerenschneider/vault-pki-cli@latest

Changelog

The full changelog can be found here

About

Automate PKI operations

License:GNU General Public License v3.0


Languages

Language:Go 93.5%Language:HCL 3.6%Language:Makefile 1.5%Language:Shell 1.0%Language:Dockerfile 0.3%