mtls-configuration

Configure mutual TLS for zero-trust service-to-service communication in Kubernetes service meshes.

Updated Apr 23, 2026
One-click install
npx skills add https://github.com/SanketAdlak/PDMProjectDesign --skill mtls-configuration-sanketadlak
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mtls-configuration
Source: https://github.com/SanketAdlak/PDMProjectDesign/tree/main/.agents/skills/mtls-configuration
Command: npx skills add https://github.com/SanketAdlak/PDMProjectDesign --skill mtls-configuration-sanketadlak

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Securing internal service-to-service communication with mutual TLS is complex, involving certificate hierarchies, mesh policies, and rotation workflows that are easy to misconfigure and hard to debug. ## Core Features & Use Cases - Service Mesh mTLS Templates: Ready-to-use Istio PeerAuthentication and DestinationRule configurations for STRICT, PERMISSIVE, and external MUTUAL TLS modes, plus automatic Linkerd mTLS setup. - Certificate Management: Cert-Manager and SPIFFE/SPIRE integration templates for CA hierarchies, short-lived workload certificates, and automated rotation. - Debugging & Compliance: Commands for diagnosing TLS handshake failures, checking certificate expiry, and meeting PCI-DSS or HIPAA requirements. - Use Case: When migrating a Kubernetes cluster to zero-trust networking, apply the PERMISSIVE-to-STRICT migration templates, then use the debugging commands to verify every workload negotiates mTLS before enforcing strict mode. ## Quick Start Ask the AI to generate an Istio PeerAuthentication policy that enables strict mTLS for a specific namespace with a permissive migration path.

Frequently Asked Questions about mtls-configuration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enable strict mTLS in Istio?

Apply a PeerAuthentication resource with mtls mode set to STRICT in the istio-system namespace for mesh-wide enforcement. You can override it per namespace or per workload using selectors and portLevelMtls settings.

How to migrate to mTLS without breaking existing services?

Start with PERMISSIVE mode, which accepts both plaintext and mTLS traffic, then migrate namespaces to STRICT incrementally. Verify each workload negotiates mTLS with istioctl authn tls-check before enforcing strict mode.

Istio vs Linkerd for automatic mTLS?

Linkerd enables mTLS automatically between meshed pods with no configuration, while Istio requires explicit PeerAuthentication and DestinationRule resources. Istio offers finer-grained control over ports, workloads, and external MUTUAL TLS connections.

Does cert-manager work with Istio mTLS?

Yes, cert-manager can act as the Istio CA through a ClusterIssuer backed by a CA secret. It issues short-lived workload certificates with configurable duration and renewBefore windows, supporting both server and client auth usages.

Why is my TLS handshake failing between services?

Handshake failures usually come from mismatched mTLS modes, expired certificates, or missing DestinationRule TLS settings. Debug with istioctl authn tls-check, inspect proxy logs at debug level, and verify peerauthentication and destinationrule resources.

How do I check certificate expiry in Istio?

Run istioctl proxy-config secret on the deployment and decode the inline certificate bytes with openssl x509 to view expiry dates. Force rotation by restarting the deployment, and set up monitoring alerts for upcoming expirations.