code: func (i *Identity) TLSConfig(cipherSuites []uint16) (*tls.Config, error) {
  	tlsConfig := utils.TLSConfig(cipherSuites)
  	if !i.HasTLSConfig() {
  		return nil, trace.NotFound("no TLS credentials setup for this identity")
  	}
  	tlsCert, err := tls.X509KeyPair(i.TLSCertBytes, i.KeyBytes)
  	if err != nil {
  		return nil, trace.BadParameter("failed to parse private key: %v", err)
  	}
  	certPool := x509.NewCertPool()
  	for j := range i.TLSCACertsBytes {
  		parsedCert, err := tlsca.ParseCertificatePEM(i.TLSCACertsBytes[j])
  		if err != nil {
  			return nil, trace.Wrap(err, "failed to parse CA certificate")
  		}
  		certPool.AddCert(parsedCert)
  	}
  	tlsConfig.Certificates = []tls.Certificate{tlsCert}
  	tlsConfig.RootCAs = certPool
  	tlsConfig.ClientCAs = certPool
  	tlsConfig.ServerName = EncodeClusterName(i.ClusterName)
  	return tlsConfig, nil
  }
docs: // TLSConfig returns TLS config for mutual TLS authentication
  // can return NotFound error if there are no TLS credentials setup for identity