fix(certificates): заменять сертификат уникальным поколением
This commit is contained in:
1 parent
c683e1b2c1
commit
8c5cfa0706
11 files changed
+220
-19
No files matched your search
+14
-2
@@ -1,6 +1,6 @@
|
||||
# UX/UI: журнал реализации
|
||||
|
||||
Актуальное продолжение 2026-10-15: 257 — post-import guard проверяет unique name/X509 SHA-256/private-key и оба SSL assignments; REST pools ограничивают запросы/закрывают idle sessions. Профили9 certificates/2 ros-file и общая backend regression прошли; backend ux-certificates257/source530/dist1084 healthy. Actual duplicate payload256 rejected applyCalls0. Controlled live parallel read12 на2CHR без login errors. Следующий258 — безопасная unique replacement без duplicate logical names; реальная повторная выдача после guard ещё не принята. Этап12.5 открыт.
|
||||
Актуальное продолжение 2026-10-15: 258 — реализована unique generation rotation с проверкой нового leaf/SSL до архивации старого, сохранением прежнего ключа и финальным logical name. Profile9/build/lint passed, image ux-certificates258 source530/dist1084 prepared, ещё не активирован; runtime backend257/frontend251. Следующий259 — согласованный real first issue + scheduler renewal, trusted TLS, unique logical name/old archive и полный откат; разрешение сохраняется. Этап12.5 открыт.
|
||||
|
||||
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
|
||||
|
||||
@@ -36,7 +36,19 @@
|
||||
| 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–257 в записанных scopes; guard/REST pool257 проверены, unique replacement258 остаётся открытой в записанных scopes. Runtime backend ux-certificates257/frontend ux-certificates251. Общая регрессия257 и профиль сертификатов252 прошли; реальный renewal остаётся открытым. |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная12.3.83; внешняя12.5 открыта, блоки1–258 в записанных scopes; unique rotation258 подготовлена, native acceptance259 остаётся открытой в записанных scopes. Runtime backend ux-certificates257/frontend ux-certificates251. Общая регрессия257 и профиль сертификатов252 прошли; реальный renewal остаётся открытым. |
|
||||
|
||||
## 12.5.258 — уникальное новое поколение и сохранение старого сертификата (2026-10-15)
|
||||
|
||||
После256/257 issuer проверяет duplicate logical name ещё до CA order. Leaf/key получают случайное уникальное имя <base>_new_<12hex>, signed X509 fingerprint вычисляется до native upload. rotateCertificateGeneration требует подтверждённые разные native IDs и свободное archive name; сначала проверяет новый leaf/private-key и назначения обоих SSL сервисов на него. Только после этого прежний logical объект переносится в <base>_old_<12hex>, новый получает прежнее logical name и повторно проверяются fingerprint/private-key/services. Старый объект/ключ не удаляется, данные jobs/requestId остаются совместимыми.
|
||||
|
||||
Перед архивацией re-read обнаруживает изменение old ID/fingerprint; после ACK проверяется освобождение logical name, сохранение old ID/fingerprint в archive и неизменность new native ID. Shared IDs, occupied archive, missing ID, external modification или false rename ACK не дают successful receipt. При поздней ошибке возможен частично применённый state с services на проверенном generation; auto-delete/слепого rollback/повторного PATCH нет. Old key сохраняется для reconciliation, остальные его потребители не объявляются автоматически проверенными. Нет обещания нулевого TLS reload или защиты нескольких issuers.
|
||||
|
||||
Сценарии first issue/no previous и renewal/previous оставляют ровно один logical name и old key; четыре apply/rename failure checkpoints сохраняют старый материал; initial3 conflicts не вызывают apply. Дополнительно shared native ID, external fingerprint change и false archive ACK отвергаются. Все9 certificate scripts прошли, contracts/backend build и scoped ESLint passed; общая25-profile regression257 не повторялась, транспорт не менялся. Новых CA/DNS/native операций258 не было.
|
||||
|
||||
Production image ux-certificates258 собран; source530/compiled1084 matched, missing/different0. Образ подготовлен, НЕ активирован: тестовый runtime остаётся backend ux-certificates257/frontend ux-certificates251 healthy. [Prepared image](ux-ui/acceptance/certificates258-preparation.json). Реальная rename/binding семантика ещё не принята по mocks. Signed certificate name изменяем по [официальной документации](https://help.mikrotik.com/docs/spaces/ROS/pages/2555969/Certificates), но фактические native/TLS postconditions проверяются отдельно.
|
||||
|
||||
[TEST-ACME](../deploy/TEST-ACME.md) дополнен поколениями и cleanup правилами. Следующий259 — активировать258 только для согласованного exact mmt253-8e62a941.pngs.top/server2, свежий baseline, real first issue + one scheduler renewal. Требовать new trusted TLS fingerprint, один logical leaf, архив с исходными native ID/fingerprint/private-key и0 unfinished new names; затем убрать все только собственные поколения/root/files/jobs/DNS и восстановить settings/services/export. Старый cleanup256 нужно адаптировать к generated names, не применять вслепую. Разрешение того же сценария уже получено254, новый вопрос не нужен. Этот внешний цикл не начат на малом остатке недельного лимита, чтобы оставить запас на обязательный откат/коммит. Real renewal остаётся открытым.
|
||||
|
||||
## 12.5.257 — достоверный импорт сертификата и ограничение REST-сессий (2026-10-15)
|
||||
|
||||
|
||||
Reference in new issue
Block a user