---
name: torgi_gov_gost_tls
description: "torgi.gov.ru перешёл на GOST-TLS (предпочтительный шифр) — ssl=False согласовывал GOST → «bad record mac», парсер Torgi падал; фикс = исключить GOST из ciphers"
metadata: 
  node_type: memory
  type: project
  originSessionId: d0c6c5aa-4d05-42e2-a1f9-034482b88603
---

2026-06-20: алерт «🔴 Парсеры: авария • Torgi не отдаёт данные (последний успех 39ч назад)» (от [[zemlya]] `bot/tools/parsers_sanity.py`, синтетик-проба). Диагноз реальным запросом с mac mini:

- **Корень:** torgi.gov.ru (Казначейство) сделал **GOST-TLS** предпочтительным шифром (`GOST2012256-GOST89-GOST89`). Клиенты с `aiohttp.TCPConnector(ssl=False)` согласовывали GOST и падали с `sslv3 alert bad record mac` (http=000, ~0.06с) — стандартный OpenSSL/LibreSSL не умеет GOST-MAC. `ssl=False` НЕ спасает (это не проверка серта, а сам протокол). Сервер при этом ВСЁ ЕЩЁ отдаёт обычные ECDHE-RSA — если форсировать не-GOST шифр, коннект проходит.
- **Фикс (наш):** в обоих клиентах задать SSLContext с `set_ciphers("ECDHE+AESGCM:ECDHE+AES:RSA+AESGCM:RSA+AES:!aGOST:!kGOST")` (CERT_NONE, как было). Файлы: `zemlya-bot/bot/services/torgi.py` (`_TORGI_SSL`, 3× connector) и `torgiradar/torgiradar/torgi_poller.py` (`_SSL_CTX.set_ciphers`). Бэкапы `*.bak-gostfix-*`. Проверено aiohttp: TLS теперь HTTP 200 (без bad-record-mac).
- **Второй слой (внешнее, ждём):** на момент инцидента torgi.gov.ru ещё и в режиме **«Технические работы»** site-wide (HTTP 200 + HTML, все пути), с VPS вообще таймаут. Пока майнтенанс — данных нет даже с фиксом; парсер корректно даёт count=0 (TorgiUnavailableError на не-JSON). Восстановится сам, когда torgi поднимется.
- **Влияние:** zemlya AI-отчёты теряют «торги»-аналоги (cian/yandex/avito здоровы → рыночные аналоги есть, отчёт деградирует, не ломается); [[torgiradar_overview]] поллер не тащит НОВЫЕ лоты (текущие ~508 живы и бронируются).
- Диагностика впредь: `openssl s_client -connect torgi.gov.ru:443` → если `Cipher is GOST...` + `bad record mac` = тот же случай; `curl --ciphers ECDHE-RSA-AES256-GCM-SHA384` обходит.
