@@ -242,20 +242,31 @@ reason (`port|non-tls|skip|in-cluster|ech|upstream-verify|handshake-fail`). Beyo
242242
243243## Config
244244
245- A pointer block on ` Config ` mirroring the ` MTLS ` /` SPIFFE ` idiom:
245+ A pointer block on ` Config ` mirroring the ` MTLS ` /` SPIFFE ` idiom.
246+
247+ > ** AS-BUILT schema (simplified from the original design narrative above).** The
248+ > implemented ` tls_bridge: ` block is deliberately smaller than the early sketch.
249+ > Decisions folded in:
250+ > - ** No ` scope ` /` internal_cidrs ` .** The ` external ` vs ` all ` distinction was dropped:
251+ > the bridge intercepts everything eligible on the configured ` ports ` , full stop
252+ > (` mode: disabled|enabled ` , matching the operator's ` tlsBridgeMode ` 1:1). No
253+ > in-cluster gate in ` Decision ` .
254+ > - ** No ` ca_source ` /` ca_cert_path ` /` ca_key_path ` /` ca_export_path ` .** A single
255+ > ` ca_dir ` holds the operator-mounted cert-manager Secret (keys ` tls.crt ` /` tls.key ` /` ca.crt `
256+ > by convention). The ephemeral in-memory CA is ** test-only** (` NewEphemeralSource ` ,
257+ > not config-selectable) — a real agent can't trust an unexported in-memory CA.
258+ > - ** No X.509 Name Constraints** on the per-agent CA (unconstrained; containment =
259+ > per-agent isolation + sidecar-only ` 0440 ` key + rotation).
260+ > - ** ` skip_hosts ` → ` passthrough_hosts ` ** to disambiguate from ` listener.skip_hosts `
261+ > (which bypasses the whole pipeline; these still run the egress gate, just not TLS-terminated).
246262
247263``` yaml
248- mitm :
249- enabled : true
250- scope : external # external | all (which traffic to intercept)
251- internal_cidrs : [] # treated as in-cluster when scope=external (else discovered)
252- ca_source : file # file | ephemeral
253- ca_cert_path : /etc/authbridge/mitm-ca/tls.crt
254- ca_key_path : /etc/authbridge/mitm-ca/tls.key
255- ca_export_path : /var/run/authbridge/mitm-ca.pem # ephemeral mode only
264+ tls_bridge :
265+ mode : enabled # disabled | enabled (enabled = intercept all eligible on ports)
266+ ca_dir : /etc/authbridge/tls-bridge-ca # operator-mounted cert-manager Secret: tls.crt/tls.key/ca.crt
256267 upstream_ca_bundle : " " # extra roots for re-origination (agent's private CAs); empty = system roots
257- skip_hosts : [] # static passthrough; auto-skip augments this at runtime
258- leaf_cache : { max: 1024, ttl: 24h }
268+ passthrough_hosts : [] # static passthrough; the runtime auto-skip set augments this
269+ ports : [] # TLS ports to intercept; empty => {443, 8443}. HTTP(S)-only.
259270` ` `
260271
261272Read in ` main.go` beside the `fpMTLS` block; construct `CASource` + `Minter` + `Terminator` + the upstream
0 commit comments