Overview
pan-chainguard is a Python application which uses CCADB data and allows PAN-OS SSL decryption administrators to:
Create a custom, up-to-date trusted root store for PAN-OS.
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:
Do not return intermediate CA certificates.
Return certificates out of order.
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
Administrator’s Guide:
https://github.com/PaloAltoNetworks/pan-chainguard/blob/main/doc/admin-guide.rst
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)
| File | Size | Uploaded | |
|---|---|---|---|
| pan_chainguard-0.15.0.tar.gz | 43.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|