Skip to main content

SHAKEN Cert Manager - Certbot for SHAKEN Certs

shaken-cert-manager is an operator-focused lifecycle manager for STIR/SHAKEN certificates. It issues certificates through stir-shaken-toolkit, keeps durable archive state, exposes the active certificate through stable live links, runs lifecycle hooks, reports monitoring status, and cleans up old material.

It currently supports integration with the PeeringHub STI-CA SHAKEN certificate provider -- an active PeeringHub account is required for valid issuance of certificates.

It does not replace your signing service. Your signing service still needs to read the private key, publish the active certificate chain at the URL used in PASSporT x5u, insert the Identity header into outbound calls, etc.

Install

Package install

pip install shaken-cert-manager

Development install

From the repository root:

pip install -e .[dev]

Quick Start

Create a manager config from the example:

cp shaken-cert-manager.example.yaml shaken-cert-manager.yaml
chmod 600 shaken-cert-manager.yaml

Fill in the PeeringHub, STI-PA, certificate subject, account, state, and hook settings needed for the deployment.

See the minimal config example for the smallest useful shape.

Prepare or provision the PeeringHub ACME account key before issuing:

stir-shaken-toolkit peeringhub-account-setup --account-dir /var/lib/shaken/account

Issue the first certificate:

shaken-cert-manager --config shaken-cert-manager.yaml issue-initial

Check status:

shaken-cert-manager --config shaken-cert-manager.yaml status
shaken-cert-manager --config shaken-cert-manager.yaml status --nagios

Run renewal from your scheduler:

shaken-cert-manager --config shaken-cert-manager.yaml renew

Run cleanup periodically:

shaken-cert-manager --config shaken-cert-manager.yaml cleanup

Short-Lived Certificates

See Custom Certificate Length for an example and related issuance settings.

Commands

  • issue-initial: issue a certificate only when no active usable certificate exists.
  • renew: issue a replacement only when renewal policy requires it.
  • force-renew: issue a replacement immediately; use --skip-confirm for non-interactive runs.
  • status: print active certificate health as text, JSON, or Nagios plugin output.
  • cleanup: remove expired inactive archives, stale live links, and old failed transaction archives.

Use --debug before the subcommand for detailed logs with configured secrets redacted:

shaken-cert-manager --config shaken-cert-manager.yaml --debug status

State Model

The manager owns a state directory, usually /var/lib/shaken:

  • account/account.key: durable PeeringHub ACME account private key.
  • account/account.json: recoverable PeeringHub ACME account state cache.
  • archive/<generation_id>/: durable certificate generation artifacts.
  • live/<generation_id>/: symlink tree exposing an unexpired generation.
  • live/current: symlink to the active live generation.
  • active.json: active generation manifest.
  • last-attempt.json: result of the last manager command that records state.
  • failed/<generation_id>/: retained failed transaction diagnostics.

Publish live/current/certificate-chain.pem from your HTTPS certificate URL and configure your signing service to use account/account.key as the private key. Do not publish account.key.

More Documentation

  • Configuration: config keys, environment overrides, defaults, and example setup guidance.
  • Operations: issuance, renewal, activation, cleanup, and state inspection workflows.
  • Automation: cron and systemd timer examples for unattended renewal.
  • Monitoring: text, JSON, and Nagios status output.
  • Lifecycle Hooks: pre-activation and deploy hook behavior.
  • Subject Templates: advanced subject common name customization.
  • Shell Completion: generated completion through argcomplete.

Release files for shaken-cert-manager 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for shaken-cert-manager 1.0.3
File Size Uploaded
shaken_cert_manager-1.0.3.tar.gz 36.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for shaken-cert-manager 1.0.3
File Interpreter ABI Platform
shaken_cert_manager-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 66.5 kB

Release files / shaken_cert_manager-1.0.3.tar.gz

Download URL shaken_cert_manager-1.0.3.tar.gz
Size 36.3 kB
Tags Source
SHA-256 checksum
How to use checksums
2ac8e7bbd67b90d670f5c49d0ec167481058a05ca812d28a9599351b8d512f99
BLAKE2b-256 checksum
How to use checksums
85a3a153fe4acf9315b202661c761bf4e3239c622b3e27b6add9cf5747f6442e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 16, 2026.

Transparency log

Release files / shaken_cert_manager-1.0.3-py3-none-any.whl

Download URL shaken_cert_manager-1.0.3-py3-none-any.whl
Size 30.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
521a3b173b885148287a6759e5eed9f03eebe6e87b1dd61f88eebe41b99729a1
BLAKE2b-256 checksum
How to use checksums
e1c82447f3a834f585ab180ade0a2ab2448c77f458b391da4ddf4fb41a13e213
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page