mtls-configuration
Configure mTLS for zero-trust networking
Secure service-to-service communication with mutual TLS authentication. This skill provides ready-to-use templates for Istio, Linkerd, SPIFFE, and cert-manager to implement zero-trust security in Kubernetes environments.
Download the skill ZIP
Upload in Claude
Go to Settings → Capabilities → Skills → Upload skill
Toggle on and start using
Test it
Using "mtls-configuration". Enable strict mTLS for my Istio mesh in the production namespace
Expected outcome:
- Created PeerAuthentication resource in istio-system namespace with STRICT mode
- Applied mesh-wide mTLS requiring mutual authentication for all services
- Added DestinationRule using ISTIO_MUTUAL mode for automatic certificate management
- Note: Existing connections will be rejected until clients update their configurations
- Use 'istioctl authn tls-check' to verify mTLS status after deployment
Using "mtls-configuration". Configure cert-manager for automatic workload certificates with 24-hour rotation
Expected outcome:
- Created ClusterIssuer named 'istio-ca' for certificate signing
- Generated Certificate resource with 24-hour duration and 8-hour renewBefore
- Specified commonName and dnsNames for service identity
- Configured server auth and client auth certificate usages
- Secret 'my-service-tls' will be created automatically when Certificate is issued
Using "mtls-configuration". Set up SPIRE for workload identity in my Kubernetes cluster
Expected outcome:
- Created ConfigMap for SPIRE Server with sqlite3 datastore
- Configured k8s_psat node attestor with demo-cluster service account allow list
- Set UpstreamAuthority plugin with disk-based bootstrap credentials
- Generated DaemonSet for SPIRE Agent with socket volume mount
- Trust domain configured as 'example.org'
Security Audit
SafeThis is a pure documentation skill containing YAML templates and guidance for mTLS configuration. All 58 static findings are false positives triggered by markdown documentation patterns (backticks for inline code), file paths in example YAML configs, and algorithm names in security documentation. No executable code, network calls, file access, or command execution capabilities exist. The skill does not generate, store, or transmit any certificates or keys.
Risk Factors
🌐 Network access (6)
⚙️ External commands (17)
Quality Score
What You Can Build
Deploy service mesh security
Configure mesh-wide mTLS policies and certificate management for multi-tenant Kubernetes clusters
Debug mTLS failures
Diagnose and resolve TLS handshake failures between services using istioctl and kubectl commands
Implement zero-trust architecture
Design and document certificate hierarchies and mTLS requirements for compliance with PCI-DSS or HIPAA
Try These Prompts
Enable strict mTLS across my Istio mesh in the production namespace. Create PeerAuthentication and DestinationRule resources for namespace-level enforcement.
Configure cert-manager to issue workload certificates for my Istio services with 24-hour duration and automatic renewal before expiry.
Create SPIRE Server and Agent configurations for workload identity in a multi-cluster Kubernetes environment with example.org trust domain.
My Istio services cannot communicate. Use istioctl commands to check peer authentication status, destination rules, and debug TLS handshake errors.
Best Practices
- Start with PERMISSIVE mode during migration, then transition to STRICT after validating all services
- Use short-lived certificates (24 hours or less) with automatic rotation for workload identities
- Monitor certificate expiry and set up alerts to prevent service disruptions
Avoid
- Disabling mTLS for convenience in production environments
- Using self-signed certificates without a proper CA hierarchy
- Ignoring certificate expiry dates or skipping rotation planning
Frequently Asked Questions
Which service mesh platforms are supported?
What certificate validity periods are recommended?
How does this skill integrate with existing tools?
Is my certificate data safe?
Why are my services failing after enabling mTLS?
How is this different from standard TLS?
Developer Details
Author
wshobsonLicense
MIT
Repository
https://github.com/wshobson/agents/tree/main/plugins/cloud-infrastructure/skills/mtls-configurationRef
main
File structure
📄 SKILL.md