123456789101112131415161718192021222324252627282930313233343536373839404142 |
- """Utilities for certificate management."""
- import os
- certifi_available = False
- certifi_where = None
- try:
- from certifi import where as certifi_where
- certifi_available = True
- except ImportError:
- pass
- custom_ca_locater_available = False
- custom_ca_locater_where = None
- try:
- from ca_certs_locater import get as custom_ca_locater_where
- custom_ca_locater_available = True
- except ImportError:
- pass
- BUILTIN_CA_CERTS = os.path.join(
- os.path.dirname(os.path.abspath(__file__)), "cacerts.txt"
- )
- def where():
- env = os.environ.get("HTTPLIB2_CA_CERTS")
- if env is not None:
- if os.path.isfile(env):
- return env
- else:
- raise RuntimeError("Environment variable HTTPLIB2_CA_CERTS not a valid file")
- if custom_ca_locater_available:
- return custom_ca_locater_where()
- if certifi_available:
- return certifi_where()
- return BUILTIN_CA_CERTS
- if __name__ == "__main__":
- print(where())
|