fix(ipsec): проверять CRL-цепочку до удаления identity

This commit is contained in:
Denozordec committed 2026-10-11 02:56:09 +07:00
1 parent a31a65fbe6
commit 7867914cbc
9 files changed
+349 -14

No files matched your search

+16 -2
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-11: завершён12.5.126 — при собственной CRL цепочке и временном crl-use/download=yes валидный client Ping3/3, отозванный reconnect AUTH_FAILED/API offline. Settings возвращены, baseline17×2/Docker/credentials restored. Первый cleanup issued leaf failed; проверенная own CA cascade recovery и итоговое повторение прошли. Backend ux-san121/frontend ux-ike124. Следующий127 — preflight удаления CRL-issued cert/CA до операций.12.5 открыт.
Актуальное продолжение 2026-10-11: завершён12.5.127 — preflight CRL-issued/revoked leaf и CA children409 до writes, force не обходит цепочку; identity-only200 сохраняетcerts.8 IPsec scripts/127 state/13 новых HTTP cases/build/ESLint;7 native refusals+1 preserve delete. Backend ux-crl127/frontend ux-ike124, hashes совпали, settings/baseline17×2/Docker/credentials restored. Первый initial Ping failed сохранён; следующий128 — time-invalid certificates.12.5 открыт.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -36,7 +36,21 @@
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–126 и ограничения ниже. Runtime backend ux-san121/frontend ux-ike124. |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–127 и ограничения ниже. Runtime backend ux-crl127/frontend ux-ike124. |
## 12.5.127 — удаление CRL-issued сертификатов без частичных изменений (2026-10-11)
Исправлена выявленная126 последовательность: перед удалением identity API проверяет явно привязанный cert/issuer. Локально issued либо revoked certificate CA с crl=true получает409 до любых writes. Пользователь может удалить только identity с removeCertificate=false. В /ipsec/certs дополнительно запрещено отдельное удаление CA с дочерними certs: RouterOS каскадно удаляет цепочку, поэтому force=true это ограничение не обходит. Автоматический отзыв/удаление чужой цепочки не добавлялся. Imported non-issued/non-revoked leaf сохраняет прежний сценарий удаления.
Добавлены13 профильных HTTP cases с нулевыми writes/history при отказе, сохранением cert при identity-only, обеими issued/revoked формами native metadata, CA force guard и положительным imported случаем. Прошли8 IPsec scripts (state127), backend production build/scoped ESLint. Backend ux-crl127/version1.0.0-test.crl127 собран из121 с одним route override; локальные и серверные source/compiled SHA256 совпали. Frontend ux-ike124 сохранён, backup pre-crl127.env/прежний image оставлены. DTO/vendor не менялись.
Native собственная CRL chain: семь409 (user/cert targets, direct leaf/CA с/безforce и revoked leaf) сохранили certs; до identity-only identity также оставалась. Identity-only200 удалил выбранную identity, сохранил все3 certs. Первый control остановился на Ping3/3 без достаточной диагностики; cleanup прошёл, отказ сохранён. Повторение проверяло выданный native VIP и записывало bounded Ping attempts, затем завершило API-сценарии. Мгновенная связность/SLA не заявляется.
Settings восстановлены точно, own CA cascade после проверки всех детей/ссылок очистил только собственную цепочку; baseline17×2/Docker/private credentials restored. Оба CHR доступны, пароли/default/public/metadata/195.195.195.195/32 сохранены. UI и общая регрессия117 повторно не запускались: guards/backend-only, сохранение modal при API error уже принято предыдущими UI блоками. [Протокол](ux-ui/acceptance/ipsec-crl-delete-preflight-2026-10-11.json). Следующий128 — expired/not-yet-valid certs без изменения часов.
| Референс | Схема |
| --- | --- |
| [ReUI Sheet8](https://reui.io/preview/base/sheet-8?ref=mcp) | Проверка cert/CA →409 без изменений → выбор сохранить cert → подтверждённое identity-only удаление |
## 12.5.126 — CRL-enabled отзыв и проверенная очистка цепочки (2026-10-11)