Safeguard
Security Guides•

gRPC between services: is TLS enough or do you need mutual TLS?

TLS encrypts and authenticates the server. Mutual TLS also authenticates the client. Learn when each fits internal gRPC traffic and how to handle rotation.

Safeguard Security Team
4 min read

TLS encrypts traffic and proves the server's identity. Mutual TLS, or mTLS, also makes the client present a certificate, so the server knows which service is calling. For service to service gRPC, mTLS is the stronger choice, but that holds if you can automate certificate issuance and rotation. Otherwise you trade one risk for another.

Definitions

TLS gives a client confidence it is talking to the right server and hides the data from observers. The client usually verifies the server certificate against a trusted authority.

Mutual TLS adds a step: the server also requests a certificate from the client and verifies it. Both sides are authenticated at the connection level.

OWASP's gRPC security cheat sheet recommends TLS in production, with version 1.2 or higher and strong cipher suites, and recommends mTLS for service to service communication because both sides verify certificates, which enables zero trust style communication. It also suggests short lived certificates of 90 days or less with automated rotation to limit the impact of compromised keys.

Decision table

SituationTLSmTLS
Public API called by outside users with tokensYesRarely practical
Internal services in one trust zoneMinimumRecommended
Services across clusters or networksNot enough aloneRecommended
Services handling regulated or sensitive dataNot enough aloneRecommended
No way to automate certificatesYesRisky to run manually

The last row is practical. Manual certificate handling leads to expired certificates, outages and eventually long lived certificates nobody dares to rotate. If you cannot automate, start with TLS plus token based call credentials, and plan the automation.

What mTLS gives you and what it does not

mTLS tells the server which certificate the caller holds. It does not say what the caller may do. You still need authorization per method. OWASP's guidance calls for method level checks based on least privilege, log of authorization failures, and tokens in metadata for user context. A service identity from a certificate and a user identity from a token answer different questions, and many systems need both.

A compromised service with a valid certificate can still call anything its identity is allowed to call, so keep permissions narrow.

Steps to adopt mTLS

  1. Choose a certificate authority for internal identities and protect its keys.
  2. Define a service identity scheme, for example one certificate per service, not per instance shared widely.
  3. Automate issuance and renewal, with lifetimes of 90 days or less as OWASP suggests, or shorter.
  4. Configure servers to require and verify client certificates, and clients to verify servers.
  5. Write method level authorization rules keyed on the verified service identity.
  6. Monitor expiry dates and alert well before a certificate lapses.
  7. Test failure cases: no client certificate, expired certificate, certificate from another authority, certificate for a different service.
  8. Document how to revoke a service identity quickly.

OWASP also mentions service meshes that provide automatic mTLS and centralized policy. Whether a mesh fits your team depends on your stack and size. The principle holds either way.

Rotation without outages

Roll out new certificates before old ones expire, accept both for a window, and confirm every client has switched before retiring the old authority. Test the process in staging on a schedule so the first real rotation is not the first rotation.

Related reading: how channel and call credentials combine.

Try it yourself

Click through it at your own pace, or open it full screen.

Look at how API findings are categorized and consider which relate to transport and identity.

Quick check

Does mTLS replace authorization?

No. It proves which service connected. You still need method level authorization and, where relevant, user tokens.

How long should service certificates live?

OWASP suggests 90 days or less with automated rotation. Shorter is fine if your automation supports it.

Safeguard scans your dependencies and SBOMs for known vulnerabilities, including gRPC and TLS libraries. A free scan is at gold.safeguard.sh/scan.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.