Asi implementing-mtls-for-zero-trust-services
install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/asi/skills/implementing-mtls-for-zero-trust-services" ~/.claude/skills/plurigrid-asi-implementing-mtls-for-zero-trust-services && rm -rf "$T"
manifest:
plugins/asi/skills/implementing-mtls-for-zero-trust-services/SKILL.mdsource content
Implementing mTLS for Zero Trust Services
When to Use
- When deploying or configuring implementing mtls for zero trust services capabilities in your environment
- When establishing security controls aligned to compliance requirements
- When building or improving security architecture for this domain
- When conducting security assessments that require this implementation
Prerequisites
- Familiarity with security operations concepts and tools
- Access to a test or lab environment for safe execution
- Python 3.8+ with required dependencies installed
- Appropriate authorization for any testing activities
Instructions
Generate CA certificates, issue service certificates, and configure mutual TLS verification for service-to-service authentication.
from cryptography import x509 from cryptography.x509.oid import NameOID from cryptography.hazmat.primitives import hashes, serialization from cryptography.hazmat.primitives.asymmetric import rsa import datetime # Generate CA key and certificate ca_key = rsa.generate_private_key(public_exponent=65537, key_size=4096) ca_cert = (x509.CertificateBuilder() .subject_name(x509.Name([x509.NameAttribute(NameOID.COMMON_NAME, "Internal CA")])) .issuer_name(x509.Name([x509.NameAttribute(NameOID.COMMON_NAME, "Internal CA")])) .public_key(ca_key.public_key()) .serial_number(x509.random_serial_number()) .not_valid_before(datetime.datetime.utcnow()) .not_valid_after(datetime.datetime.utcnow() + datetime.timedelta(days=3650)) .add_extension(x509.BasicConstraints(ca=True, path_length=None), critical=True) .sign(ca_key, hashes.SHA256()))
Examples
import ssl context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) context.load_cert_chain("client.pem", "client-key.pem") context.load_verify_locations("ca.pem") context.verify_mode = ssl.CERT_REQUIRED