<!--
.. title: Системные сертификаты в python requests
.. slug: python-requests-ssl-certificate
.. date: 2026-04-29 14:44:30 UTC+03:00
.. tags: python
.. category: 
.. link: 
.. description: 
.. type: text
-->

При запросе по *https* при помощи `requests` из скрипта на python
есть несколько вариантов для проверки сертификата.
За это отвечает параметр `verify`.

## Отключение проверки

Если параметр `verify` равен *False*, то проверка будет отключена.
Это в целом нехорошо, да и будут выводиться всякие предупреждения.
Для закрытой локалки как временное решение может и сойдёт...

```
import requests

r = requests.get(url, verify=False)

``` 
## Проверка по умолчанию

Если параметр `verify` равен *True* (это значение по умолчанию),
то проверка будет проводиться на соответствие 
[python-certifi](https://github.com/certifi/python-certifi).

```
import requests

r = requests.get(url, verify=True)

``` 

## Проверка "вручную"

Можно вручную сохранить сертификаты в текстовый файл 
(всю цепочку, от корневого центра до сертификата сайта) и
путь до этого файла дать в качестве параметра. Тогда
сертификаты будут проверяться на соответствие сохраненным 
в этом файле. 

```
import requests

r = requests.get(url, verify='/path/to/certfile')

``` 

## Использование системных сертификатов

Обычная включенная проверка (`verify=True`) проверяет
сертификаты "встроенные" в `certifi`, при этом игнорируя
сертификаты установленные в системе. Иногда это неудобно.
Решением данной проблемы может служить установка
пакета `pip-system-certs`:

```
pip3 install pip-system-certs
```

После этого обычная проверка (`verify=True`) будет учитывать
установленные в системе сертификаты.



Источник: [https://stackoverflow.com/questions/50422136/python-requests-with-wincertstore](https://stackoverflow.com/questions/50422136/python-requests-with-wincertstore)