Short answer

Zero Trust rejects the idea that anything is trusted merely because it is on "the internal network". Every connection must be authenticated and authorised regardless of where it comes from. mTLS is the primary mechanism at the network layer: by requiring both parties to prove their identity with a certificate on every single connection, you remove network location as a basis for trust. Identity becomes cryptographic, not topological.

The old "castle and moat" and why it failed

The classic model was a hard perimeter (firewall, VPN) and a soft interior where everything on the internal network implicitly trusted each other. The problem: as soon as an attacker gets inside — via phishing, a vulnerable service or a compromised supplier — they can move laterally at will. "Internal network" was mistaken for "trusted".

Zero Trust inverts this: there is no trusted zone. A connection from the neighbouring pod is treated with the same scepticism as one from the internet.

How mTLS realises the principles

Zero Trust principle How mTLS delivers it
Verify explicitlyEvery connection requires a valid client certificate — no anonymous calls
Do not trust the networkIdentity comes from the certificate, not from IP or network zone
Least privilegeCertificate identity is mapped to precise per-service permissions
Assume breachShort-lived certificates limit the window if a key leaks

Workload identity: the heart of it all

In Zero Trust every workload must have a verifiable identity. The mTLS certificate is that identity. In modern environments the identity is often bound to a SPIFFE ID in the certificate's SAN — see mTLS in Kubernetes for how SPIFFE/SPIRE issues them. The point is that the identity cannot be forged without the private key, and it follows the workload wherever it runs.

Identity is not authorisation

A common misstep is to believe that "holds a valid certificate" is enough. mTLS answers who are you, not what may you do. A complete Zero Trust policy maps the certificate identity to concrete permissions. In a service mesh this is expressed as an authorisation policy:

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: payments-allow-checkout
  namespace: payments
spec:
  action: ALLOW
  rules:
    - from:
        - source:
            # only the checkout service identity may call payments
            principals: ["cluster.local/ns/shop/sa/checkout"]
      to:
        - operation:
            methods: ["POST"]
            paths: ["/charge"]

Here principals is the mTLS-verified identity. Without this policy any valid identity could call anything — that is authentication without authorisation, and it is not Zero Trust.

The hard part is not the cryptography — it is the certificates

The deep irony of Zero Trust is that it swaps one trust problem (the network) for a new operational one (an explosion of certificates). Every workload, every service and every internal CA now has a certificate with an expiry date. A single expired certificate in the wrong place can take down a whole business flow, and because these certificates are internal and machine-to-machine, no browser warns about them.

How to keep Zero Trust alive

A Zero Trust architecture is only as reliable as the certificates it rests on. CertControl discovers and monitors certificates across your whole estate — public, internal, server and client certificates — tracks every expiry date, validates that chains are complete, and warns in good time. So the identity layer of your Zero Trust is not the thing that suddenly fails. Start with what is mTLS and see the gateway-to-backend pattern.

Frequently asked questions

Is mTLS the same as Zero Trust?

No. Zero Trust is an architectural principle; mTLS is a technique that helps realise it at the network layer. Zero Trust also covers user identity, device posture and fine-grained authorisation — mTLS covers the machine-to-machine identity.

Can I do Zero Trust without mTLS?

You can implement parts of it by other means (e.g. token-based service identity), but mTLS is the most direct way to get cryptographically verified identity on every network connection. Most network-layer Zero Trust implementations use mTLS.

Does mTLS replace my firewall or VPN?

Not directly, but it reduces dependence on them as a trust boundary. In a pure Zero Trust model, network location is irrelevant to trust, so firewall/VPN become segmentation rather than authentication.

Why does Zero Trust use short-lived certificates?

Because the "assume breach" principle dictates limiting the damage if a key leaks. A certificate that lives only 24 hours is worthless to an attacker the next day. The trade-off is that it requires automated issuance and rotation.

What is workload identity?

A verifiable identity tied to a running service or process — not to a user or an IP. In an mTLS context it is the certificate, often carrying a SPIFFE ID, that uniquely identifies the workload.