Пакет python3-module-certifi поставляет собственный CA-bundle (cacert.pem) внутри пакета, и certifi.where() возвращает именно его, а не системное хранилище сертификатов: $ python3 -c "import certifi; print(certifi.where())" /usr/lib/python3/site-packages/certifi/cacert.pem Системное хранилище живёт отдельно: /etc/pki/tls/certs/ca-bundle.crt -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem Из-за этого все пакеты, использующие certifi для проверки TLS, игнорируют корпоративные/локальные CA, добавленные через update-ca-trust (например внутренний root CA организации). При этом verify=True в httpx/requests по умолчанию идёт через certifi, а не через системный bundle. В Debian/Ubuntu это исправлено патчем: certifi.where() там возвращает системный bundle (/etc/ssl/certs/ca-certificates.crt). Сертификаты certifi много где используются (apt-cache whatdepends python3-module-certifi): python3-module-aioquic python3-module-tornado streamlink python3-module-signxml python3-module-pipenv python3-module-minio python3-module-mechanicalsoup python3-module-httpx python3-module-aiogram puddletag pr-agent hass-core python3-module-netCDF4 clamavmirror python3-module-sentry-sdk python3-module-telebot python3-module-sphobjinv python3-module-pyppeteer python3-module-langchain-openai python3-module-kubernetes-client python3-module-httpcore python3-module-gabbi python3-module-edge-tts python3-module-diode-sdk openuds-server openuds-client lutris tauon python3-module-selenium python3-module-pyproj python3-module-kivy-tests python3-module-clickhouse-connect python3-module-mysqlsh Разработчики certifi рекомендуют в README на https://github.com/certifi/python-certifi выбирать в самих проектах другие способы проверки сертификатов.
(In reply to Vitaly Lipatov from comment #0) TL;DR нет, мне не нравится это предложение. > Пакет python3-module-certifi поставляет собственный CA-bundle (cacert.pem) > внутри пакета, и certifi.where() возвращает именно его, а не системное > хранилище сертификатов: Да, поскольку в этом и состоит его предназначение. > В Debian/Ubuntu это исправлено патчем: certifi.where() там возвращает > системный bundle (/etc/ssl/certs/ca-certificates.crt). Я не стал бы называть это исправлением. > Сертификаты certifi много где используются (apt-cache whatdepends > python3-module-certifi): > python3-module-aioquic > python3-module-tornado > streamlink > python3-module-signxml > python3-module-pipenv > python3-module-minio > python3-module-mechanicalsoup > python3-module-httpx > python3-module-aiogram > puddletag > pr-agent > hass-core > python3-module-netCDF4 > clamavmirror > python3-module-sentry-sdk > python3-module-telebot > python3-module-sphobjinv > python3-module-pyppeteer > python3-module-langchain-openai > python3-module-kubernetes-client > python3-module-httpcore > python3-module-gabbi > python3-module-edge-tts > python3-module-diode-sdk > openuds-server > openuds-client > lutris > tauon > python3-module-selenium > python3-module-pyproj > python3-module-kivy-tests > python3-module-clickhouse-connect > python3-module-mysqlsh > > > Разработчики certifi рекомендуют в README на > https://github.com/certifi/python-certifi выбирать в самих проектах другие > способы проверки сертификатов. Если вы ссылаетесь на секцию Addition/Removal of Certificates, то я понимаю её содержание следующим образом: проекты, в которых предполагается использование альтернативных root of trust, должны озаботиться этим сами и не полагаться на certifi.