
Solid reference for implementing mutual TLS across service meshes, with working configs for Istio, Linkerd, and SPIFFE/SPIRE. The debugging section actually helps when TLS handshakes fail, showing specific istioctl commands to check certificate status and peer authentication policies. Templates cover the migration path from PERMISSIVE to STRICT mode that most teams need. Certificate rotation examples are practical, including the base64 decode pipeline to check expiry dates. Best practices section cuts through the usual security theater to focus on operational concerns like short-lived certificates and proper CA hierarchy.
$ npx -y skills add wshobson/agents --skill mtls-configuration --agent claude-codeInstalls into .claude/skills of the current project.
Comprehensive guide to implementing mutual TLS for zero-trust service mesh communication.
┌─────────┐ ┌─────────┐
│ Service │ │ Service │
│ A │ │ B │
└────┬────┘ └────┬────┘
│ │
┌────┴────┐ TLS Handshake ┌────┴────┐
│ Proxy │◄───────────────────────────►│ Proxy │
│(Sidecar)│ 1. ClientHello │(Sidecar)│
│ │ 2. ServerHello + Cert │ │
│ │ 3. Client Cert │ │
│ │ 4. Verify Both Certs │ │
│ │ 5. Encrypted Channel │ │
└─────────┘ └─────────┘
Root CA (Self-signed, long-lived)
│
├── Intermediate CA (Cluster-level)
│ │
│ ├── Workload Cert (Service A)
│ └── Workload Cert (Service B)
│
└── Intermediate CA (Multi-cluster)
│
└── Cross-cluster certs
Full template library and detailed worked examples live in references/details.md. Read that file when you need the concrete templates.
Sponsors