Skip to main content

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

Metadata

Release files for launch-cert-tool 1.1.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 launch-cert-tool 1.1.0
File Size Uploaded
launch_cert_tool-1.1.0.tar.gz 7.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for launch-cert-tool 1.1.0
File Interpreter ABI Platform
launch_cert_tool-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.3 kB

Release files / launch_cert_tool-1.1.0.tar.gz

Download URL launch_cert_tool-1.1.0.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a46778a9822dee1fa16092402125cb21119ec36aa83f84bea717d4dfd8ec80c1
BLAKE2b-256 checksum
How to use checksums
b869ef63b400e8598328e246f7dcd137865b348b167584795f1d0c509fdcac55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.17

Release files / launch_cert_tool-1.1.0-py3-none-any.whl

Download URL launch_cert_tool-1.1.0-py3-none-any.whl
Size 7.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5b555bdea99e4f97ba8eb7e8f26f9a0eaa1fc4ad4fdcced554a1156bc28ca71f
BLAKE2b-256 checksum
How to use checksums
49b3ef609d4b15955f513a1a583669cb87bfdd6cefaac9f149889bd4f9240dae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.17

Release history Release notifications | RSS feed

This release

1.1.0 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