Files
admin/.tasks/NEXT_SESSION.md
vitya 3c7ca3416b feat(iis-migration): win-acme HTTP-01 auto-renewal on RUVDS IIS
Stood up a permanent self-renewing Let's Encrypt pipeline on the RUVDS
IIS host, replacing the manual traefik acme.json -> PFX import and
closing the 2026-07-22 cert-expiry deadline (new 25-SAN cert valid to
2026-09-03, SYSTEM scheduled task renews 55 days before expiry).

Key obstacle: the MoreThenCms OWIN catch-all (owin:HandleAllRequests)
swallowed /.well-known/acme-challenge/. Solved by carving the challenge
path into a separate IIS application in a No-Managed-Code app pool, plus
patching win-acme's Web_Config.xml template to remove the inherited Owin
handler. Staging + prod validation green for all 25 hostnames; live TLS
smoke confirms the new cert is served (incl degraded maljarka/rimiz).

- scripts/iis-migration-to-ruvds/03-ruvds-winacme.ps1 (idempotent setup)
- scripts/iis-migration-to-ruvds/winacme-Web_Config.xml (patched template)
- .wiki/concepts/winacme-iis-owin-catchall-http01.md (recipe + gotchas)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 21:08:41 +03:00

3.3 KiB
Raw Blame History

_last_updated_, session_id
_last_updated_ session_id
2026-06-05T02:00:00+03:00 2026-06-05-iis-cutover-and-winacme-renewal

Next session handoff

Сессия: (1) full DNS cutover на RUVDS достигнут; (2) поднят постоянный win-acme HTTP-01 auto-renewal на RUVDS IIS — дедлайн cert-expiry 2026-07-22 СНЯТ. Source НЕ заглушен (warm rollback). Всё проверено, ничего не висит.

Recent commits

  • 9cd6d4e2 task(iis-migration): full DNS cutover reached 2026-06-05
  • (+ commit этой сессии: win-acme renewal pipeline + wiki concept)

Что сделано (iis-migration, 05.06)

  • Full cutover: все 25 hostname authoritative на RUVDS 80.64.31.36. На windows-source ничего authoritative.
  • win-acme auto-renewal на RUVDS: 25-SAN LE cert (до 2026-09-03) во всех SNI-биндингах + SYSTEM scheduled task win-acme-renew-snolla (renew 55д до expiry). RUVDS больше НЕ зависит от домашнего traefik по сертификатам.
    • Gotcha решён: OWIN-catch-all CMS жрал /.well-known/acme-challenge/ → challenge вынесен в отдельное IIS-приложение (пул «No Managed Code») + патч шаблона C:\win-acme\Web_Config.xml.
    • Артефакты: scripts/iis-migration-to-ruvds/03-ruvds-winacme.ps1 + winacme-Web_Config.xml; recipe в .wiki/concepts/winacme-iis-owin-catchall-http01.md.
    • Доступ к RUVDS: SSH ~/.ssh/ruvds-iis-migrationAdministrator@80.64.31.36 (elevated сессия).

Спроси user'а

  • Decommission snolla site на windows-source — ждём soak (~2026-06-12) + drain кэша, или раньше? Когда решит: elevated PS → Stop-Website snolla → архив C:\sites\snolla (8.66 ГБ) → kreknin + cleanup temp SSH-ключей/FW-правил. (win-acme на RUVDS от этого не зависит — он самостоятелен.)
  • maljarka.tandemmebel.ru 502 — чинить CMS-тенант отдельно? (pre-existing, не блокер; HTTPS-cert у него валиден).

Не делать (preemptive guards)

  • Не --test в win-acme под SSH — включает интерактив, виснет. Для staging — --baseuri <staging>.
  • Не трогать acme-challenge IIS-приложение / пул «No Managed Code» / патченый Web_Config.xml — на них держится авто-renewal. Detail: .wiki/concepts/winacme-iis-owin-catchall-http01.md.
  • Не Stop-Website snolla пока хвост кэша течёт / без явного запроса (warm rollback).
  • IIS-правки — elevated shell. branch ahead от origin — push без явного grant'а (Rule 4); grant НЕ давали.

Memory updates за сессию

  • (нет нового файла; знание — в wiki concept + task decisions log)

⚠️ Sensitive (НЕ в git)

  • Корневой C:\sites\snolla\web.config содержит plaintext-креды (MSSQL/SMTP/Azure/API-ключи). Pre-existing, не вводилось этой сессией. Если будешь декоммишить/архивировать — не плодить копии в трекаемых местах.