> Текущая инженерная редакция: 4.4.0-wip. Реальные свидетельства не получены. Перенаправления ключа запрещены; нужен манифест полного сайта этой редакции. Другой домен не удостоверяет независимость управления. Проверки на независимой машине и защита соединения от смены DNS остаются открытыми. Результаты: [журнал качества](ЖУРНАЛ-КАЧЕСТВА.md).

# Приём свидетельств владельца · 4.4.0-wip

## Открытые рубежи

ВР-01 — резервный публичный маршрут; ВР-02 — почтовый цикл отправка → получение → ответ; ВР-03 — независимое управление и отзыв полномочий; ВР-04 — независимый резерв оплаты и проверка продления. В этой поставке подтверждено **0 из 4**. Фактическое развёртывание не выполнялось.

## Что исправлено

Прежний сценарий принимал непустое поле подписи за допуск. Теперь активный приёмник проверяет Ed25519, структуру, UTC-время, SHA-256 исходной записи, открытого ключа и точного манифеста текущего выпуска. Ключ сборщика из корня сайта не является ключом владельца. Старый формат не переносится в подтверждённый статус.

Подпись проверяет авторство байтов, не описанный факт. Независимо опубликованный ключ загружается только по внешнему HTTPS, с контролем конечного адреса и отпечатка. Запрос выполняется лишь с явным флагом `--сеть`. Разные доменные имена сами по себе не доказывают независимого управления; это подлежит содержательной проверке владельца и независимого наблюдателя. Недоступная сеть не заменяется локальным флажком «проверено».

## Порядок

Заполните `владелец/черновик-свидетельства.json`, отдельно для каждого рубежа. Приложение должно быть обезличено; укажите его SHA-256 и доступное проверяющему свидетельство. Дата, исполнитель и результат должны описывать реально выполненное действие. Опубликуйте открытый ключ отдельно от сайта; закрытый ключ не помещайте в корень сайта, архив, переписку или приложение.

Используйте манифест **полного сайта**, а не манифест отдельного набора владельца. Из корня набора выполните:

```sh
python инструменты/создать-свидетельство-владельца.py владелец/черновик-свидетельства.json --закрытый-ключ /безопасный/путь/владелец.pem --манифест /путь/полного-сайта/МАНИФЕСТ-ВЫПУСКА.json --выход свидетельство-ВР-01.json
python инструменты/проверить-свидетельство-владельца.py свидетельство-ВР-01.json --ключ /безопасный/путь/открытый.pem --манифест /путь/полного-сайта/МАНИФЕСТ-ВЫПУСКА.json --сеть
python инструменты/решение-по-внешним-рубежам.py /каталог/свидетельств --ключ /безопасный/путь/открытый.pem --манифест /путь/полного-сайта/МАНИФЕСТ-ВЫПУСКА.json --сеть
```

При зашифрованном закрытом ключе добавьте `--ключ-зашифрован`: пароль вводится интерактивно, не в командной строке. Сценарий создания не перезаписывает существующий файл. Поля с заполнителями не подписываются.

Код выхода 0 проверки отдельного свидетельства означает только криптографический допуск с проверенной публикацией, не закрытие внешнего рубежа. Сводный сценарий сохраняет `wip`, отмечает конкурирующие свидетельства и требует отдельной проверки фактов и независимости. Автоматического снятия `wip` нет.

## Критерий выпуска

Снятие `wip` требует всех локальных, браузерных, упаковочных, сетевых и владельческих проверок, а не одной подписи. Приложите подписанный протокол независимой проверки исполнения и независимости, привязанный к тем же байтам выпуска. Не переносите одобрение на пересобранный архив без новой проверки. Воспроизводимые тесты с искусственным ключом являются только тестами программы.
