If you're calling from inside the mesh I would say it's working fine, take a look here and here.
Mutual TLS in Istio
Istio offers mutual TLS as a solution for service-to-service authentication.
Istio uses the sidecar pattern, meaning that each application container has a sidecar Envoy proxy container running beside it in the same pod.
When a service receives or sends network traffic, the traffic always
goes through the Envoy proxies first.
When mTLS is enabled between two services, the client side and server side Envoy proxies verify each other’s identities before sending requests.
If the verification is successful, then the client-side proxy encrypts the traffic, and sends it to the server-side proxy.
The server-side proxy decrypts the traffic and forwards it locally to the actual destination service.
I am on istio 1.6.8, think it enables mTLS by default.
Yes, it's enabled by default since istio 1.5 version. There are related docs about this.
Automatic mutual TLS is now enabled by default. Traffic between sidecars is automatically configured as mutual TLS. You can disable this explicitly if you worry about the encryption overhead by adding the option -- set values.global.mtls.auto=false during install. For more details, refer to automatic mutual TLS.
Is there any clear process to prove that it is indeed using mTLS?
I would say there are 3 ways
You can change it from strict to permissive and call it from outside the mesh, it should work. Then change it to strict and call it again, it shouldn't work. In both ways you should be able to call it from a pod inside the mesh.
If you want to see it visual way kiali should have something like a padlock when mtls is enabled, there is github issue about that.
It was already mentioned in the banzaicloud, and you mentioned that in the comments, you can check the Connection Security Policy metric label. Istio sets this label to mutual_tls if the request has actually been encrypted.
Let me know if have any more questions.
connection_security_policy
metric. Finally was able to check from prometheus and it is set tomutual_tls
even though I have not applied the above policy. I am on istio 1.6.8, think it enables mTLS by default. Is there any clear process to prove that it is indeed using mTLS? – Grimlock