Skip to main content

quickcerts

quickcerts

Quick and easy X.509 certificate generator for SSL/TLS utilizing local PKI


❤️ ❤️ ❤️

You can say thanks to the author by donations to these wallets:

  • ETH: 0xB71250010e8beC90C5f9ddF408251eBA9dD7320e
  • BTC:
    • Legacy: 1N89PRvG1CSsUk9sxKwBwudN6TjTPQ1N8a
    • Segwit: bc1qc0hcyxc000qf0ketv4r44ld7dlgmmu73rtlntw

Features

  • Easy to use.
  • Genarates both client and server certificates.
  • Produces certificates with proper attributes (Key Usage, Extended Key Usage, Authority Key Identifier, Subject Key Identifier and so on).
  • Supports certificates with multiple domain names (SAN, SubjectAlternativeName).
  • Supports wildcard certificates.
  • Generates PKCS12 (.pfx, .p12) as well

Requirements

  • Python 3.4+
  • cryptography 1.6+

Installation

From source

Run this command within source directory:

pip3 install .

From PyPI

pip3 install quickcerts

Snap Store

Get it from the Snap Store

sudo snap install quickcerts

Docker

For deployment with Docker see "Docker" section below.

Usage example

quickcerts -D *.example.com example.com -D www.example2.com example2.com mx.example2.com -C "John Doe" -C "Jane Doe"
quickcerts -D localhost 127.0.0.1

These commands will produce following files in current directory:

  • CA certificate and key
  • Two server certificates having multiple DNS names or IP addresses in SubjectAlternativeName fields and keys for that certificates.
  • Two client certificates for CN="John Doe" and CN="Jane Doe" (and keys for them).

Consequent invokations will reuse created CA.

Docker

Also you may run this application with Docker:

docker run -it --rm -v "$(pwd)/certs:/certs" \
    yarmak/quickcerts -D server -C client1 -C client2 -C client3

In this example CA and certificates will be created in ./certs directory.

Synopsis

$ quickcerts --help
usage: quickcerts [-h] [-o OUTPUT_DIR] [-k KEY_SIZE] [--kdf-rounds KDF_ROUNDS]
                  [-D DOMAINS [DOMAINS ...]] [-C CLIENT] [-P PASSWORD]

Generate RSA certificates signed by common self-signed CA

options:
  -h, --help            show this help message and exit
  -o OUTPUT_DIR, --output-dir OUTPUT_DIR
                        location of certificates output (default: .)
  -k KEY_SIZE, --key-size KEY_SIZE
                        RSA key size used for all certificates (default: 2048)
  --kdf-rounds KDF_ROUNDS
                        number of KDF rounds (default: 50000)
  -D DOMAINS [DOMAINS ...], --domains DOMAINS [DOMAINS ...]
                        Generate server certificate which covers following
                        domains or IP addresses delimited by spaces. First one
                        will be set as CN. Option can be used multiple times.
                        (default: None)
  -C CLIENT, --client CLIENT
                        Generate client certificate with following name.
                        (default: None)
  -P PASSWORD, --password PASSWORD
                        password for newly generated .pfx files (default:
                        password)

Metadata

Release files for quickcerts 1.2.0

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

Source distribution (sdist)

Source distribution for quickcerts 1.2.0
File Size Uploaded
quickcerts-1.2.0.tar.gz 6.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for quickcerts 1.2.0
File Interpreter ABI Platform
quickcerts-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.5 kB

Release files / quickcerts-1.2.0.tar.gz

Download URL quickcerts-1.2.0.tar.gz
Size 6.4 kB
Tags Source
SHA-256 checksum
How to use checksums
5c083ad9a6226f4ea74a3ca444d2dfbd2e8e1525b8df68eaa3a549f6ed0f4da1
BLAKE2b-256 checksum
How to use checksums
36fe5880c8a2d8974a3f3afe3c7d880395a55271475c6ab5677827a74554c98d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release files / quickcerts-1.2.0-py3-none-any.whl

Download URL quickcerts-1.2.0-py3-none-any.whl
Size 7.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4a66c90fcb6fa6b25b37dca99046163931af09928a5a7049452719c05be28fb3
BLAKE2b-256 checksum
How to use checksums
3b4dc27b4b6c90e506d8273a9fed3f221727e897bbf97f6a54b8bead66e4b065
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.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