Hi everyone,
We are designing an architecture where we need to enforce mutual TLS (mTLS) for specific services. However, due to some organizational constraints, we are not able to configure the mTLS policy directly on our Global External HTTPS Load Balancer.
Our goal is to find a way to terminate mTLS at the application level, specifically within our Cloud Run service, which sits behind the load balancer.
Our proposed flow is:
-
The External HTTPS Load Balancer receives the TLS connection from the client.
-
The load balancer forwards the client certificate information (passthrough) to the backend Cloud Run service via HTTP headers.
-
Our application code within the Cloud Run service inspects these headers, validates the client certificate, and then decides whether to accept or reject the request.
My questions are:
-
Is this a supported and recommended pattern for achieving application-level mTLS with Cloud Run?
-
What is the correct configuration on the External HTTPS Load Balancer to enable this client certificate passthrough?
-
Are there any best practices or potential pitfalls we should be aware of when implementing the certificate validation logic within the Cloud Run service itself?
Any guidance, examples, or insights from the community would be greatly appreciated.
Kind Regards,
Subhajit