[DOCS] TLS-DB nis2: verità topologia (fpm→host SOCKET) + tentativo socket→TCP fallito su path fpm
CONTEXT/runbook aggiornati con le conclusioni 2026-06-10 sera: - L'app HTTP (php-fpm) usa il MySQL HOST via UNIX SOCKET (localhost), NON il container (la "scoperta container" precedente era basata sul path CLI = falso positivo). - TLS su socket non si applica e rompe (outage rientrato: rm flag + USR2). - Switch socket→TCP via vault-net (172.30.0.1): CLI(root) OK ma fpm(www-data) esce con source=gateway → masquerade → 135.x → 1045. Switch NON eseguito (sarebbe outage). - Lezione: validare SEMPRE sul path fpm reale (diag servito da php-fpm), mai CLI/docker exec. - Pre-equip codice resta committato e inerte (flag OFF); attivabile quando il path TCP fpm sarà grantabile (bind 172.21 in finestra con restart MySQL). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4d89b1e04b
commit
d98d52ed58
@@ -1,5 +1,11 @@
|
||||
# TLS-in-transito DB — pre-equip NIS2 (VIGILE 2026-06-10)
|
||||
|
||||
> 🔴 **AGGIORNAMENTO 2026-06-10 (post-test reale): nis2 NON è TLS-izzabile così com'è.**
|
||||
> Verificato in contesto **php-fpm reale**: l'app HTTP connette al **MySQL HOST `dfm-dev` (8.0.46) via UNIX SOCKET** (`DB_HOST=localhost` fallback, env non propagato ai worker www-data). **TLS-in-transito NON si applica a un socket** (IPC locale, nessun transito) e **forzarlo rompe la connessione**: attivando il flag `.db_ssl_on` → `PDOException [2002] Cannot connect to MySQL using SSL` → **outage live** (api-status `database:error`, login 500). Ripristinato con `rm .db_ssl_on` + `kill -USR2 1`.
|
||||
> **Conseguenze**: (1) il pre-equip codice (`Database::sslOptions()`) resta corretto e **inerte default-OFF**, ma **il flag NON va attivato** per nis2; (2) per fare TLS l'app andrebbe prima spostata su **TCP** verso un endpoint di rete (e poi CA+enforce su QUEL server); (3) l'enforce `REQUIRE SSL` fatto sul **container nis2-db** è **irrilevante** per l'HTTP (che usa il socket host) → **nis2 va ESCLUSO dall'enforce** finché resta su socket. (4) ⚠️ Il `docker exec nis2-app php` mostra il path CLI (`db`→container), **non** quello dell'app — non usarlo per validare.
|
||||
> Il resto del documento descrive il pattern PHP-PDO/CA generale (valido per prodotti che connettono via TCP); per nis2 vale l'avviso qui sopra.
|
||||
|
||||
|
||||
> Stato: **codice pre-equipaggiato (gated, DEFAULT OFF)**. Restano gli step che richiedono accesso host/coordinamento VIGILE (distribuzione CA, attivazione, verifica sul path reale, enforce `ALTER USER`).
|
||||
> Doc autoritativo del metodo: `agile-services/docs/ANALISI_TLS_DB_STRUTTURALE_E_CENSIMENTO_2026_06_10.md` (§11 pattern PHP-PDO/CA, §14 `+` vs array_merge, §16 lezione "codice baked / verifica sul path reale").
|
||||
|
||||
|
||||
Reference in New Issue
Block a user