Skip to main content

Overview

pan-chainguard is a Python application which uses CCADB data and allows PAN-OS SSL decryption administrators to:

  1. Create a custom, up-to-date trusted root store for PAN-OS.

  2. Determine intermediate certificate chains for trusted Certificate Authorities in PAN-OS so they can be preloaded as device certificates.

Issue 1: Out-of-date Root Store

The PAN-OS root store (Default Trusted Certificate Authorities) is updated only in PAN-OS major software releases; it is not currently managed by content updates. The root store for PAN-OS 10.x releases is now over 5 years old.

The impact for PAN-OS SSL decryption administrators is when the root CA for the server certificate is not trusted, the firewall will provide the forward untrust certificate to the client. End users will then see errors such as NET::ERR_CERT_AUTHORITY_INVALID (Chrome) or SEC_ERROR_UNKNOWN_ISSUER (Firefox) until the missing trusted CAs are identified, the certificates are obtained, and the certificates are imported into PAN-OS.

Issue 2: Misconfigured Servers

Many TLS enabled origin servers suffer from a misconfiguration in which they:

  1. Do not return intermediate CA certificates.

  2. Return certificates out of order.

  3. Return intermediate certificates which are not related to the root CA for the server certificate.

The impact for PAN-OS SSL decryption administrators is end users will see errors such as unable to get local issuer certificate until the sites that are misconfigured are identified, the required intermediate certificates are obtained, and the certificates are imported into PAN-OS.

Solution 1: Create Custom Root Store

pan-chainguard can create a custom root store, using one or more of the major vendor root stores, which are managed by their CA certificate program:

The custom root store can then be added to PAN-OS as trusted CA device certificates.

Solution 2: Intermediate CA Preloading

pan-chainguard uses a root store and the All Certificate Information (root and intermediate) in CCADB (CSV) data file as input, and determines the intermediate certificate chains, if available, for each root CA certificate. These can then be added to PAN-OS as trusted CA device certificates.

By preloading known intermediates for the trusted CAs, the number of TLS connection errors that users encounter for misconfigured servers can be reduced, without reactive actions by an administrator.

Documentation

Install pan-chainguard

pan-chainguard is available as a release on GitHub and as a package on PyPi.

pan-chainguard-content - Certificate Content for pan-chainguard

pan-chainguard-content provides pre-generated, up-to-date content which can be used to simplify the deployment of pan-chainguard.

Release files for pan-chainguard 0.15.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 pan-chainguard 0.15.0
File Size Uploaded
pan_chainguard-0.15.0.tar.gz 43.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pan-chainguard 0.15.0
File Interpreter ABI Platform
pan_chainguard-0.15.0-py3-none-any.whl Python 3 none any Details

Total release size: 97.3 kB

Release files / pan_chainguard-0.15.0.tar.gz

Download URL pan_chainguard-0.15.0.tar.gz
Size 43.0 kB
Tags Source
SHA-256 checksum
How to use checksums
7db4763b204434140db92032fe1670a68db5fc7656dae00a340dd0f32cc14b7f
BLAKE2b-256 checksum
How to use checksums
b494692ee2f90fb97ee249ae70f65e0761ea20f6c7f48b5c91122461ae92bfd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Release files / pan_chainguard-0.15.0-py3-none-any.whl

Download URL pan_chainguard-0.15.0-py3-none-any.whl
Size 54.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
12e52a5c805bf813b45c23ceb5b0e7cc98274b0846317e68060cbbdd6990a4d4
BLAKE2b-256 checksum
How to use checksums
2d391e8e032e7606fde51157aa0baceaec0905d32444cdce49235c49694dc6d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Release history Release notifications | RSS feed

This release

0.15.0 This release

2 release files

0.14.0

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

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