Skip to main content

CLI tool to assist with certificate management

Project description

launch-cert-tool

Overview

This CLI tool allows a consistent method of certificate validation, intended for use by Launch engineers when swapping out certificates for our various services.

Eventually we'd like to get to the point where we issue and renew certificates directly from ACM, but until that happens, we need to use fully-chained certificates in order to have our services play nicely with certain build systems (e.g. Azure DevOps). This tool can help you verify that you have everything you need before rotating certificates in ACM/CloudFront.

Installation

pip

Installing this tool to the virtual environment of your choice can be accomplished with the following:

pip install launch-cert-tool

uv

uv handles setting up a virtual environment, you can add this tool to an existing project with:

uv add launch-cert-tool

uvx / run-standalone (recommended)

uvx allows you to download the tool and execute it in an isolated throwaway environment without having to install any dependencies to your system. Run this tool using the following:

uvx --with launch-cert-tool launch-cert-tool [COMMAND] [OPTIONS]

You can utilize this technique to run a particular version of the tool if required:

uvx --with launch-cert-tool@1.0.0 launch-cert-tool [COMMAND] [OPTIONS]

Usage

Once installed to a virtual environment, launch-cert-tool should be added to your PATH. You may invoke the command without any arguments (or use the --help option) to view the usage page.

Validating local certificate files

To validate certificate files prior to import to ACM, you'll need to have the certificates saved to your local machine. Local certificate verification allows you to specify any number of local files to include into a single chain for validation. This means that you could have your leaf certificate for the service separate from the intermediate certificates that make up the chain of trust. The syntax for local validation is demonstrated below:

launch-cert-tool validate local /path/to/leaf.crt /other/path/to/intermediate.crt

Validating a chain stored in ACM

ACM allows us to pull down an imported certificate and the associated chain to perform the same validation. This ensures that what you uploaded to ACM matches what you tested locally:

launch-cert-tool validate acm arn:aws:acm:<region>:<account id>:certificate/<certificate id>

Validating certificates served by a remote host

As a followup test after switching CloudFront over to your newly-imported ACM certificates, you may also validate the chain of certificates for a certain host, as shown here:

launch-cert-tool validate remote example.com

Contributing

Prerequisites

Development Environment

To configure your local development environment, perform the following steps:

  1. Clone this repository to your local machine
  2. asdf install (or mise install) to set up tool dependencies
  3. make configure to pull in platform targets and set up hooks
  4. uv sync to synchronize Python dependencies

Run tests with make test and review the test coverage report locally using make coverage.

Running a dev version locally

Using uv run to launch your code ensures that your code runs in an isolated environment. For more inforamtion about using uv run, see the official documentation.

To set up the proper script and environment to be able to run your dev version of launch-cert-tool from the command line, you will need to perform an editable installation:

uv pip install -e .

Further reading

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

launch_cert_tool-1.0.0.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

launch_cert_tool-1.0.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file launch_cert_tool-1.0.0.tar.gz.

File metadata

  • Download URL: launch_cert_tool-1.0.0.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.5.24

File hashes

Hashes for launch_cert_tool-1.0.0.tar.gz
Algorithm Hash digest
SHA256 97b5818c34a34cab57ee4fc703c1c091d004e4fad86cf2762a0bed40775460fd
MD5 a5e3cb62bdb31bea53224a2cc57fa99a
BLAKE2b-256 bb571e253c9767a3de7dfc259f78cc24ced8cfd2ff8884c00aceca6c0130d041

See more details on using hashes here.

File details

Details for the file launch_cert_tool-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for launch_cert_tool-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8f97542d252d9fd45199050bde382d18cec1d62b0b893a5d0a29605140d8660
MD5 3cc97f7b2d1e8bcb652be64d0f201a7d
BLAKE2b-256 af87bfb0ba16f4ad98e73726392abfc4edba607f706d5c3f78cfeb2a90795d05

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page