pip-system-certs
Automatically configures Python to use system certificates via truststore
What it is and what it does
pip-system-certs is a bootstrap utility that injects your operating system's certificate store into Python's SSL context at startup, replacing the bundled certificates that Python normally uses. It leverages pip's vendored truststore library to provide native OS integration: the Security framework on macOS, CryptoAPI on Windows, and OpenSSL with system stores on Linux.
Once installed, the package works transparently—Python applications automatically verify TLS/SSL connections against your system's trusted certificates without any code changes. This is particularly useful when your organization uses custom or self-signed certificates trusted by the OS, or when you need pip and Python libraries to respect system-wide certificate policies. The mechanism uses a .pth file to trigger bootstrap at Python startup, so it applies globally to all SSL connections made by any library using the standard SSL context.
Use it for:
- Verify pip package downloads against corporate or custom certificate authorities trusted by your OS.
- Make requests and urllib3 respect system-installed root certificates in enterprise environments.
- Ensure Python applications work correctly behind corporate proxies or firewalls that intercept HTTPS.
- Avoid certificate verification errors when using conda or other tools that manage their own certificate stores.
- Simplify certificate management by delegating to OS-level trust stores instead of bundling or configuring certificates in Python.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Automatically configures Python to use the operating system's certificate store for SSL/TLS verification instead of bundled certificates, working transparently with pip, requests, urllib3, and other standard Python libraries.
Yes, if you need Python to use system certificates and are on Python 3.10+ with pip 24.2+. Install friction is minimal and there are no known vulnerabilities. The aging maintenance status (302 days since release) is a minor concern, but the package is straightforward and relies on stable pip internals. Not suitable for PyInstaller-bundled applications without manual workarounds, and conda on Linux may require additional configuration.
Install
pip-system-certs on PyPI
pip
pip install pip-system-certsuv
uv add pip-system-certspoetry
poetry add pip-system-certsInstalling pip-system-certs
Before you install
Low install friction—a pure-Python wheel with only pip as a runtime dependency. Maintenance status is aging (302 days since last release), but the package targets current Python versions (3.10–3.13) and carries no known vulnerabilities.
License in practice
BSD-3-Clause is permissive; you can use, modify, and distribute this package freely in commercial and open-source projects with minimal restrictions.
Quickstart
pip install pip-system-certs
import pip_system_certs
# SSL verification now uses system certificates automatically
Requires Python 3.10 or higher and pip 24.2 or higher. Does not work with PyInstaller-bundled applications without manual setup; conda virtual environments on Linux may use a separate certificate store that takes precedence.
Verify before relying
- Whether the package works reliably with all major Python HTTP libraries beyond requests, urllib3, and httpx.
- Performance impact of automatic certificate injection on startup time or SSL handshake latency.
- How the package behaves when system certificates are updated or rotated after Python starts.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — pip |
| Maintenance | aging — 302 days since the last release |
| First released | |
| Downloads | 3,244,020/month — #2,686 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pip_system_certs-5.3-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
python-certifi-win32Patches certifi at runtime to include…
permissive · top 15,000 on PyPI
sslpsk-pmd3Provides TLS/SSL connections using pre-shared…
permissive · top 15,000 on PyPI
truststoreTruststore exposes native system certificate…
permissive · top 1,000 on PyPI
aiaBuilds and validates TLS certificate chains by…
permissive · top 15,000 on PyPI
certifi-linuxRedirects certifi's certificate lookup to use…
permissive · top 15,000 on PyPI
wincertstoreAccesses Windows system certificate stores (CA…
permissive · top 15,000 on PyPI
certifiCertifi provides Mozilla's curated collection…
copyleft · top 100 on PyPI
wassimaWassima provides access to your operating…
permissive · top 5,000 on PyPI
requestsexceptionsProvides a compatibility layer to import…
permissive · top 15,000 on PyPI
service-identityVerifies that cryptography or pyOpenSSL…
permissive · top 5,000 on PyPI