Traffic encryption is in preview and isn’t enabled by default. Contact Ryvn support to enable it for
your environment.
When to use it
- Protect sensitive data exchanged between services, such as an API calling a worker or a database in the environment.
- Meet customer requirements for encrypted, authenticated connections, even on private networks.
How it works
You enable mTLS per namespace. Workloads in enabled namespaces communicate over encrypted TCP connections, within or across those namespaces. Running workloads start using mTLS without a restart. mTLS verifies workload identity. Use network policy to control which destinations a workload can reach. Keep using HTTPS for public endpoints and TLS for connections to external services.Enable mTLS
Add thenetworking.ryvn.app/mtls label to the namespace in the environment’s
namespaces list. Start with permissive on every
namespace whose workloads need to communicate:
Switch a namespace to
strict only after all workloads that call it have mTLS enabled. Callers left outside mTLS
will lose access to that namespace.
Check that traffic is encrypted
To confirm that a caller’s traffic is encrypted, run a short check from the caller’s namespace. It starts a temporary pod, records the traffic leaving that pod, and sends one request to the destination with a marker header. If the marker appears in the recording, the request crossed the network as plain text. The check needs a permission set that can create pods and attach to them in the caller’s namespace:prod-us with the
caller’s namespace and the URL with the address the caller uses:
Encrypted means the destination answered and the marker never appeared on the network. NOT encrypted means the
caller’s or the destination’s namespace doesn’t have mTLS enabled. A curl error means the request got no answer;
that’s also what a caller without mTLS sees when the destination is strict. The pod is deleted when the check ends.