New to Claude Skills? Learn how to install them →

wshobson on GitHub

mTLS Configuration

Free

Secure service-to-service communication with mutual TLS.

Get this skill

Free · Opens the source repo

What mTLS Configuration does

The mTLS Configuration skill provides a comprehensive guide for implementing mutual TLS (mTLS) to secure service-to-service communication within zero-trust networking environments. This skill is essential for developers and system architects looking to enhance security protocols in their microservices architecture. By following the detailed instructions and templates provided, users can effectively manage certificate lifecycles and ensure secure connections between services.

Mutual TLS is a crucial component in modern application security, particularly in environments where services need to authenticate each other before establishing a connection. This skill outlines the mTLS flow, including the TLS handshake process, which ensures that both parties involved in the communication can verify each other's identities. The skill also emphasizes the importance of maintaining a proper certificate hierarchy, which is vital for managing trust relationships across services and clusters.

In addition to the core concepts, the skill offers best practices for implementing mTLS effectively. Users are guided on how to start with permissive settings and gradually migrate to stricter configurations, monitor certificate expiry, and automate certificate rotation. The skill also warns against common pitfalls, such as disabling mTLS in production or using self-signed certificates, which can compromise security. This makes it a valuable resource for compliance with standards like PCI-DSS and HIPAA, where secure communication is a requirement.

Overall, this skill is designed for developers and security professionals who are tasked with implementing secure communication protocols in their applications. By leveraging the templates and examples provided, users can streamline the process of setting up mTLS and ensure that their services communicate securely and efficiently.

When to use it

Use this skill when implementing zero-trust networking or when you need to secure internal service communications with mutual TLS.

When not to use it

This skill may not be suitable for scenarios where mutual TLS is not required or for simpler applications that do not involve service-to-service communication.

What you can build with it

Implementing Zero-Trust Networking

Use this skill to set up mutual TLS as part of a zero-trust architecture, ensuring that all service communications are authenticated and encrypted.

Certificate Management

Leverage the templates and examples provided to manage certificate lifecycles effectively, including rotation and monitoring for expiry.

Debugging TLS Handshake Issues

Refer to the guidelines for troubleshooting TLS handshake problems, helping to quickly resolve connectivity issues between services.

How to install mTLS Configuration

View source

1. Install with the skills CLI

npx skills add wshobson/agents/mtls-configuration --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by wshobson

mTLS Configuration

Comprehensive guide to implementing mutual TLS for zero-trust service mesh communication.

When to Use This Skill

  • Implementing zero-trust networking
  • Securing service-to-service communication
  • Certificate rotation and management
  • Debugging TLS handshake issues
  • Compliance requirements (PCI-DSS, HIPAA)
  • Multi-cluster secure communication

Core Concepts

1. mTLS Flow

┌─────────┐                              ┌─────────┐
│ 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       │         │
└─────────┘                              └─────────┘

2. Certificate Hierarchy

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

Templates and detailed worked examples

Full template library and detailed worked examples live in references/details.md. Read that file when you need the concrete templates.

Best Practices

Do's

  • Start with PERMISSIVE - Migrate gradually to STRICT
  • Monitor certificate expiry - Set up alerts
  • Use short-lived certs - 24h or less for workloads
  • Rotate CA periodically - Plan for CA rotation
  • Log TLS errors - For debugging and audit

Don'ts

  • Don't disable mTLS - For convenience in production
  • Don't ignore cert expiry - Automate rotation
  • Don't use self-signed certs - Use proper CA hierarchy
  • Don't skip verification - Verify the full chain

Frequently asked questions about mTLS Configuration

Similar skills