certipy
Utility to create and sign CAs and certificates
What it is and what it does
Certipy is a Python utility that simplifies the creation and management of certificate authorities and certificates for local or development use. It provides both a command-line interface and a Python API to generate CAs, create and sign certificate-key pairs, manage certificate hierarchies, and build trust bundles. The package maintains a persistent store of all certificates it creates, tracking signing relationships and file locations, and it relies on the cryptography library for the underlying cryptographic operations.
The tool is designed to reduce boilerplate around certificate generation by handling file I/O, permission management, and record-keeping automatically. It exposes methods to create CAs, sign certificates under a parent CA, import external certificates, remove certificates, and generate CA bundles for trust configuration. Records are stored as dictionaries containing metadata (serial number, CA status, parent relationship, signees) and file paths, making it easy to query and manage certificates programmatically.
Use it for:
- Generate self-signed root CAs and intermediate signing authorities for local testing environments without external PKI infrastructure.
- Automate certificate creation in integration tests or CI/CD pipelines where temporary certificates are needed for TLS configuration.
- Build trust bundles and certificate chains for development servers or containerized applications that need to validate client certificates.
- Manage a small local PKI hierarchy for internal tools, microservices, or lab environments where certificate rotation and signing relationships need tracking.
- Import and organize externally-issued certificates alongside locally-generated ones in a unified certificate store.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Certipy creates and manages certificate authorities and signed certificates on demand, with command-line and Python API interfaces for generating PKI hierarchies, signing operations, and trust bundle management.
Yes, if you need to generate and manage certificates programmatically for development, testing, or internal tooling. The low install friction, permissive license, and active maintenance make it a practical choice for local PKI tasks. Not recommended for production certificate generation without careful evaluation of security requirements and compliance constraints.
Install
certipy on PyPI
pip
pip install certipyuv
uv add certipypoetry
poetry add certipyInstalling certipy
Before you install
Low install friction with a single runtime dependency (cryptography). The package is actively maintained with recent commits and supports modern Python versions (3.7–3.12), though its modest star count and position in the popularity tier suggest limited production adoption.
License in practice
BSD 3-Clause License is permissive and allows commercial use, modification, and distribution with minimal restrictions—suitable for most projects that need to bundle or redistribute the package.
Quickstart
from certipy import Certipy
certipy = Certipy(store_dir='/tmp')
certipy.create_ca('my-ca')
certipy.create_signed_pair('my-cert', 'my-ca')
record = certipy.store.get_record('my-cert')
Verify before relying
- Whether the package is suitable for production certificate generation or intended primarily for development and testing scenarios.
- Performance characteristics when managing large numbers of certificates or complex hierarchies.
- Whether external certificate import and management covers all common certificate formats and encodings.
Package facts
| License | BSD 3-Clause License Copyright (c) 2018, Lawrence Livermore National Security, LLC All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — cryptography |
| Maintenance | actively maintained — 107 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 375,809/month — #7,132 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: certipy-0.2.3-py3-none-any.whl
Keywords: pki, ssl, tls, certificates
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
python-certifi-win32Patches certifi at runtime to include…
permissive · top 15,000 on PyPI
certifiCertifi provides Mozilla's curated collection…
copyleft · top 100 on PyPI
trustmetrustme generates fake TLS certificates and…
permissive · top 5,000 on PyPI
mscertsProvides access to Microsoft's Root Certificate…
copyleft · top 15,000 on PyPI
certifi-linuxRedirects certifi's certificate lookup to use…
permissive · top 15,000 on PyPI
wincertstoreAccesses Windows system certificate stores (CA…
permissive · top 15,000 on PyPI
pip-system-certsAutomatically configures Python to use the…
permissive · top 5,000 on PyPI
certvalidatorValidates X.509 certificates and certificate…
permissive · top 15,000 on PyPI
ocspbuilderocspbuilder creates and signs OCSP requests and…
permissive · top 5,000 on PyPI
flipt-clientA Python client for Flipt feature flag…
permissive · top 15,000 on PyPI