Configure SSL/TLS inspection on network security devices to decrypt, inspect, and re-encrypt HTTPS traffic for threat detection while managing certificates, exemptions, and privacy compliance.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Configure SSL/TLS inspection on network security devices to decrypt, inspect, and re-encrypt HTTPS traffic for threat detection while managing certificates, exemptions, and privacy compliance.
SSL/TLS inspection (also called SSL decryption, HTTPS inspection, or TLS break-and-inspect) intercepts encrypted traffic between clients and servers to inspect the cleartext content for malware, data exfiltration, policy violations, and command-and-control communications. The inspection device acts as a trusted man-in-the-middle, terminating the TLS session from the client, inspecting the plaintext content, and establishing a new TLS session to the destination server. With over 95% of web traffic now encrypted, organizations without TLS inspection have a massive blind spot. This skill covers configuring TLS inspection on next-generation firewalls, deploying trusted CA certificates, managing exemptions for certificate-pinned applications, and ensuring compliance with privacy regulations.
When to Use
When conducting security assessments that involve performing ssl tls inspection configuration
When following incident response procedures for related security events
When performing scheduled security testing or auditing activities
When validating security controls through hands-on testing
Common Misconfigurations & Verification
CA not trusted on every store: if the inspection CA isn't in each device/browser/OS store — including app-specific stores like Firefox NSS, Java cacerts, and Python certifi — users hit cert errors or apps fail. Verify per-platform, not just Windows.
Certificate pinning breaks silently: pinned apps (apple-update, microsoft-update, Dropbox, most mobile apps) fail under decryption, so teams add over-broad no-decrypt rules that become blind spots. Keep a tight, app-specific exemption list and review it.
QUIC/HTTP3 bypass: browsers tunnel over UDP/443 (QUIC) and skip the TLS proxy entirely. Block UDP/443 to force HTTP/2 through inspection, then confirm no quic in traffic logs.
TLS 1.3 0-RTT and ECH: 0-RTT early data and Encrypted Client Hello defeat SNI-based policy. Enforce min TLS 1.2, decide policy on 0-RTT, and confirm ECH handling.
Privacy/legal exemptions: financial and health categories must bypass inspection for compliance — verify the No-Decrypt rule actually matches before any cleartext is logged.
Fail-open vs fail-closed: know what happens when decryption resources exhaust (show system setting ssl-decrypt memory); a fail-open device silently passes uninspected traffic under load.
Verification:openssl s_client -connect www.google.com:443 -servername www.google.com | openssl x509 -noout -issuer must show the internal inspection CA as issuer; check decryption logs for errors and confirm pinned-app exemptions haven't broadened to whole categories.
Prerequisites
Next-generation firewall or secure web gateway with TLS inspection capability
Internal Certificate Authority (CA) for signing inspection certificates
Endpoint certificate management (GPO, MDM, or manual deployment)
Privacy and legal review for TLS inspection scope
Understanding of PKI, X.509 certificates, and TLS handshake
# Import CA certificate to firewall
# Device > Certificate Management > Certificates > Import
# Set as Forward Trust CA
set shared certificate SSL-Inspect-CA forward-trust-certificate yes
# Create Decryption Profile
set profiles decryption Corporate-Decrypt ssl-forward-proxy block-expired-certificate yes
set profiles decryption Corporate-Decrypt ssl-forward-proxy block-untrusted-issuer yes
set profiles decryption Corporate-Decrypt ssl-forward-proxy block-unknown-cert yes
set profiles decryption Corporate-Decrypt ssl-forward-proxy restrict-cert-exts yes
set profiles decryption Corporate-Decrypt ssl-forward-proxy strip-alpn no
# Minimum TLS version
set profiles decryption Corporate-Decrypt ssl-protocol-settings min-version tls1-2
set profiles decryption Corporate-Decrypt ssl-protocol-settings max-version max
# Decryption policy - decrypt outbound HTTPS
set rulebase decryption rules Decrypt-Outbound from Trust to Untrust
set rulebase decryption rules Decrypt-Outbound source any
set rulebase decryption rules Decrypt-Outbound destination any
set rulebase decryption rules Decrypt-Outbound service any
set rulebase decryption rules Decrypt-Outbound action decrypt
set rulebase decryption rules Decrypt-Outbound type ssl-forward-proxy
set rulebase decryption rules Decrypt-Outbound profile Corporate-Decrypt
Step 4: Configure Exemptions
Certain applications and categories must be excluded from TLS inspection:
# Exempt certificate-pinned applications
set rulebase decryption rules No-Decrypt-Pinned from Trust to Untrust
set rulebase decryption rules No-Decrypt-Pinned application [ apple-update microsoft-update dropbox-base ]
set rulebase decryption rules No-Decrypt-Pinned action no-decrypt
# Exempt privacy-sensitive categories
set rulebase decryption rules No-Decrypt-Privacy from Trust to Untrust
set rulebase decryption rules No-Decrypt-Privacy category [ health-and-medicine financial-services ]
set rulebase decryption rules No-Decrypt-Privacy action no-decrypt
# Exempt specific high-trust domains
set rulebase decryption rules No-Decrypt-Trusted from Trust to Untrust
set rulebase decryption rules No-Decrypt-Trusted destination [ bank-of-america.com chase.com healthcare.gov ]
set rulebase decryption rules No-Decrypt-Trusted action no-decrypt
Step 5: Configure Inbound Inspection for Internal Servers
# Import server certificate and private key
# Device > Certificate Management > Certificates > Import
# Inbound inspection policy
set rulebase decryption rules Inspect-WebServers from Untrust to DMZ
set rulebase decryption rules Inspect-WebServers destination [ 10.0.20.10 10.0.20.11 ]
set rulebase decryption rules Inspect-WebServers service service-https
set rulebase decryption rules Inspect-WebServers action decrypt
set rulebase decryption rules Inspect-WebServers type ssl-inbound-inspection
set rulebase decryption rules Inspect-WebServers profile Corporate-Decrypt
Step 6: Validate SSL Inspection
# Test from client - verify certificate issuer is internal CA
openssl s_client -connect www.google.com:443 -servername www.google.com 2>/dev/null | \
openssl x509 -noout -issuer -subject
# Expected output (with inspection active):# issuer= /C=US/O=Corp Inc/OU=Network Security/CN=Corp SSL Inspection CA# subject= /CN=www.google.com# Verify no certificate errors in browser# Check firewall decryption logs for errors# Test with curl
curl -v https://www.example.com 2>&1 | grep "issuer"# Check decryption statistics on firewall
show system setting ssl-decrypt memory
show system setting ssl-decrypt certificate-cache
show counter global filter category ssl