<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>60167</bug_id>
          
          <creation_ts>2026-08-15 08:18:30 +0300</creation_ts>
          <short_desc>Пакет python3-module-certifi поставляет собственный CA-bundle (cacert.pem) внутри пакета</short_desc>
          <delta_ts>2026-09-03 11:36:17 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>python3-module-certifi</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="Sergey Bolshakov">sbolshakov</assigned_to>
          <cc>glebfm</cc>
    
    <cc>kotopesutility</cc>
    
    <cc>root</cc>
    
    <cc>sbolshakov</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>292680</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2026-08-15 08:18:30 +0300</bug_when>
    <thetext>Пакет python3-module-certifi поставляет собственный CA-bundle (cacert.pem) внутри пакета, и certifi.where() возвращает именно его, а не системное хранилище сертификатов:

  $ python3 -c &quot;import certifi; print(certifi.where())&quot;
  /usr/lib/python3/site-packages/certifi/cacert.pem

Системное хранилище живёт отдельно:
  /etc/pki/tls/certs/ca-bundle.crt -&gt; /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 выбирать в самих проектах другие способы проверки сертификатов.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294936</commentid>
    <comment_count>1</comment_count>
    <who name="Sergey Bolshakov">sbolshakov</who>
    <bug_when>2026-09-03 11:36:17 +0300</bug_when>
    <thetext>(In reply to Vitaly Lipatov from comment #0)

TL;DR нет, мне не нравится это предложение.

&gt; Пакет python3-module-certifi поставляет собственный CA-bundle (cacert.pem)
&gt; внутри пакета, и certifi.where() возвращает именно его, а не системное
&gt; хранилище сертификатов:
Да, поскольку в этом и состоит его предназначение.

&gt; В Debian/Ubuntu это исправлено патчем: certifi.where() там возвращает
&gt; системный bundle (/etc/ssl/certs/ca-certificates.crt). 
Я не стал бы называть это исправлением.

&gt; Сертификаты certifi много где используются (apt-cache whatdepends
&gt; python3-module-certifi):
&gt; python3-module-aioquic
&gt; python3-module-tornado
&gt; streamlink
&gt; python3-module-signxml
&gt; python3-module-pipenv
&gt; python3-module-minio
&gt; python3-module-mechanicalsoup
&gt; python3-module-httpx
&gt; python3-module-aiogram
&gt; puddletag
&gt; pr-agent
&gt; hass-core
&gt; python3-module-netCDF4
&gt; clamavmirror
&gt; python3-module-sentry-sdk
&gt; python3-module-telebot
&gt; python3-module-sphobjinv
&gt; python3-module-pyppeteer
&gt; python3-module-langchain-openai
&gt; python3-module-kubernetes-client
&gt; python3-module-httpcore
&gt; python3-module-gabbi
&gt; python3-module-edge-tts
&gt; python3-module-diode-sdk
&gt; openuds-server
&gt; openuds-client
&gt; lutris
&gt; tauon
&gt; python3-module-selenium
&gt; python3-module-pyproj
&gt; python3-module-kivy-tests
&gt; python3-module-clickhouse-connect
&gt; python3-module-mysqlsh
&gt; 
&gt; 
&gt; Разработчики certifi рекомендуют в README на
&gt; https://github.com/certifi/python-certifi выбирать в самих проектах другие
&gt; способы проверки сертификатов.

Если вы ссылаетесь на секцию Addition/Removal of Certificates,
то я понимаю её содержание следующим образом:
проекты, в которых предполагается использование альтернативных
root of trust, должны озаботиться этим сами и не полагаться на certifi.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>