NoServerCertificateVerificationPortLevel

This message occurs when caCertificates is not set in a destination rule, but is needed for the traffic policy.

Example

You will receive this message:

Error [IST0129] (DestinationRule db-tls.default) DestinationRule default/db-tls in namespace default has TLS mode set to SIMPLE but no caCertificates are set to validate server identity for host: mydbserver.prod.svc.cluster.local at port number:443

when your cluster has the following destination rule:

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: db-tls
spec:
  host: mydbserver.prod.svc.cluster.local
  trafficPolicy:
    portLevelSettings:
      - port:
          number: 443
        tls:
          mode: SIMPLE
          clientCertificate: /etc/certs/myclientcert.pem
          privateKey: /etc/certs/client_private_key.pem
          sni: my-nginx.mesh-external.svc.cluster.local
          # caCertificates not set

In this example, the destination rule db-tls specifies TLS, but does not set the CA certificate file.

How to resolve

  • Supply the filename of a CA certificate
  • Change the traffic policy so that a certificate is not needed