mtls-configuration

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

Updated May 8, 2026
One-click install
npx skills add https://github.com/kiprotichgidii/agent-skills --skill mtls-configuration-kiprotichgidii
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: mtls-configuration
Source: https://github.com/kiprotichgidii/agent-skills/tree/main/skills/mtls-configuration
Command: npx skills add https://github.com/kiprotichgidii/agent-skills --skill mtls-configuration-kiprotichgidii

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Securing internal service-to-service traffic with mutual TLS is complex: teams must manage certificate hierarchies, configure mesh-wide policies, rotate credentials, and debug opaque TLS handshake failures. This Skill provides ready-to-use templates and operational guidance for implementing mTLS correctly. ## Core Features & Use Cases - Service Mesh Templates: Production-ready YAML for Istio PeerAuthentication, DestinationRules, and Linkerd automatic mTLS, including STRICT and PERMISSIVE migration modes. - Certificate Management: Cert-manager integration, SPIFFE/SPIRE workload identity setup, and certificate rotation procedures with short-lived workload certs. - Debugging & Compliance: Commands for verifying mTLS status, inspecting certificate expiry, and troubleshooting TLS handshakes, supporting PCI-DSS and HIPAA requirements. - Use Case: When migrating a Kubernetes cluster to zero-trust networking, apply the PERMISSIVE-to-STRICT Istio templates, wire cert-manager as the CA, and use the debugging commands to verify every workload negotiates mTLS before enforcing strict mode. ## Quick Start Ask the agent to generate an Istio PeerAuthentication policy that enables strict mTLS for the payment-service workload in the production namespace.

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, or target specific namespaces and workloads with label selectors. Migrate gradually by starting with PERMISSIVE mode before switching to STRICT.

Istio vs Linkerd for automatic mTLS, which should I use?▼

Linkerd enables mTLS automatically between meshed pods with minimal configuration, while Istio requires explicit PeerAuthentication and DestinationRule resources but offers finer-grained control such as port-level policies. Choose based on how much policy granularity your services need.

How do I rotate certificates in an Istio service mesh?▼

Restart workloads with kubectl rollout restart to trigger certificate refresh, and verify expiry by inspecting proxy secrets with istioctl proxy-config secret. Use cert-manager with short durations like 24h and renewBefore windows to automate rotation.

Why is my mTLS handshake failing between services?▼

Handshake failures usually come from mismatched PeerAuthentication modes, missing DestinationRule TLS settings, or expired certificates. Run istioctl authn tls-check against the destination service and inspect istio-proxy logs at debug level to identify the cause.

Can I use SPIFFE/SPIRE for workload identity with mTLS?▼

Yes, SPIRE issues short-lived X509 SVIDs to workloads through its agent socket, providing attested workload identity for mTLS. Configure the SPIRE server with a trust domain, node attestor, and upstream CA, then run the agent as a DaemonSet on each node.