Skip to main content

Chase authority information access from a host certificate to complete the chain of trust.

Project description

AIA Chaser

Poetry License: MIT Linter: Ruff Code style: black Imports: isort pre-commit

PyPI - Version PyPI - Python Version

Read the Docs

This package helps automatically retrieve missing certificates to complete a secure SSL chain of trust. It ensures that even if a server doesn’t provide the full certificate chain, your connection remains secure.

What is AIA Chasing?

AIA (Authority Information Access) is a feature in SSL certificates, defined in RFC 5280, that points to:

  • CA Issuers – To fetch missing issuer certificates.
  • OCSP – To check if a certificate has been revoked.

By following these links, this package helps fill in the gaps, ensuring your SSL connections don’t fail due to missing certificates.

Why Does This Matter?

Sometimes, a website works fine in your browser but fails when using curl or Python’s requests library. That is because browsers often handle AIA chasing automatically, while other tools don’t. If you’ve run into SSL errors like this, this package can help! :guide_dog:.

Examples

The following examples showcase how to use this library with some typical Python HTTP libraries.

  • Standard library's urlopen:
from urllib.request import urlopen
from aia_chaser import AiaChaser

url = "https://..."

chaser = AiaChaser()
context = chaser.make_ssl_context_for_url(url)
response = urlopen(url, context=context)
import requests
from aia_chaser import AiaChaser

chaser = AiaChaser()
url = "https://..."
context = chaser.make_ssl_context_for_url(url)

ca_data = chaser.fetch_ca_chain_for_url(url)
with tempfile.NamedTemporaryFile("wt") as pem_file:
    pem_file.write(ca_data.to_pem())
    pem_file.flush()
    response = requests.get(url, verify=pem_file.name)
import urllib3
from aia_chaser import AiaChaser

url = "https://..."

chaser = AiaChaser()
context = chaser.make_ssl_context_for_url(url)
with urllib3.PoolManager(ssl_context=context) as pool:
    respone = pool.request("GET", url)

Acknowledgments

  • This project is based on aia.

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

aia_chaser-3.3.0.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

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

aia_chaser-3.3.0-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file aia_chaser-3.3.0.tar.gz.

File metadata

  • Download URL: aia_chaser-3.3.0.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aia_chaser-3.3.0.tar.gz
Algorithm Hash digest
SHA256 9b5bfee8b03d3cd08d5af654c9de994ad14d306698b6d621a871b533dac165f2
MD5 cdef3ec03287c39781b210d985508ff8
BLAKE2b-256 191d0b73a2a12b468e6a02eb1e6b7625a1c309a70d182889662e89d8e914d229

See more details on using hashes here.

File details

Details for the file aia_chaser-3.3.0-py3-none-any.whl.

File metadata

  • Download URL: aia_chaser-3.3.0-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aia_chaser-3.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f468157791f0152356891fb5608a2117cc60523ff1d4db30256a1907793f219
MD5 22c109c7ed2a4e03c7b23aa4cd5068af
BLAKE2b-256 63e4afcaaacd2130304ab82fe807dee702db13cc4918e86f4c4776db834e1c77

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