title: Istio | TLS mutual-auth without using Istio ingress gateway
body: <p>I want to achieve TLS mutual auth between my different services running in a kubernetes cluster and I have found that Istio is a good solution to achieve this without making any changes in code.</p>
  <p>I am trying to use Istio sidecar injection to do TLS mutual auth between services running inside the cluster.</p>
  <ul>
  <li>Outside traffic enters the mesh through nginx ingress controller. We want to keep using it instead of the Istio ingress controller(we want to make as little changes as possible).</li>
  <li>The services are able to communicate with each other properly when the Istio Sidecar injection is disabled. But as soon as I enable the sidecar in the application's namespace, the app is not longer able to serve requests(I am guessing the incoming requests are dropped by the envoy sidecar proxy).</li>
  </ul>
  <p><a href="https://i.stack.imgur.com/mNC7Q.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/mNC7Q.jpg" alt="My architecture looks like this" /></a></p>
  <p>What I want to do:</p>
  <ul>
  <li>Enable istio sidecar proxy injection on namespace-2(nginx ingress controller, service 1 and service 2) so that all services communicate with each other through TLS mutual auth.</li>
  </ul>
  <p>What I don't want to do:</p>
  <ul>
  <li>Enable istio sidecar proxy injection on the nginx ingress controller(I don't want to make any changes in it as it is serving as frontend for multiple other workloads).</li>
  </ul>
  <p>I have been trying to make it work since a couple of weeks with no luck. Any help from the community will be greatly appreciated.</p>