How to Implement and Test SSL Decryption

Outbound SSL Decryption (SSL Forward Proxy)

Resolution

To configure SSL decryption:

  1. Configure the firewall to handle traffic and place it in the network
  2. Make sure the proper Certificate Authority (CA) is on the firewall
  3. Configure SSL decryption rules
  4. Enable SSL decryption notification page (optional)
  5. Commit changes and test decryption

Steps to Configure SSL Decryption

1. Configure the Firewall to Handle Traffic and Place it in the Network

Make sure the Palo Alto Networks firewall is already configured with working interfaces (i.e., Virtual Wire, Layer 2, or Layer 3), Zones, Security Policy, and already passing traffic.

2. Load or Generate a CA Certificate on the Palo Alto Networks Firewall

A Certificate Authority (CA) is required to decrypt traffic properly by generating SSL certificates on the fly. Create a self-signed CA on the firewall or import a Subordinate CA (from your own PKI infrastructure). Select one CA for the Forward Trust Certificate and a different CA for the Forward Untrust Certificate to enable the firewall to decrypt traffic.

NOTE: Because SSL certificate providers such as Entrust, Verisign, Digicert, and GoDaddy do not sell CAs, they are not supported in SSL Decryption.

From the firewall web interface, go to Device > Certificates. Load or generate a certificate for either inbound inspection or outbound (forward proxy) inspection.

Generating a Self-Signed Certificate

Using a Self-Signed Certificate is recommended. For information on generating a Self-Signed Certificate, please review the following Knowledge article: How to Generate a New Self-Signed SSL Certificate.

Generating and Importing a Certificate from Microsoft Certificate Server

  1. On the Microsoft Certificate Server for your organization, request an advanced certificate using the certificate template “subordinate CA.” Download the cert.
  2. After downloading, export the certificate from the local certificate store. In Internet Explore (IE), access the Internet Options dialog, select the Contenttab, then click the Certificatesbutton. The new certificate can be exported from the personal certificates store. Select Certificate Export Wizard, export the private key, then select the format. Enter a passphrase and a file name and location for the resulting file. The certificate will be in a PFX format (PKCS #12).
  3. To extract the certificate, use this openSSL[4] command:
    openssl pkcs12 –in pfxfilename.pfx –out cert.pem –nokeys
  4. To extract the key, use this openSSL command:
    openssl pkcs12 –in pfxfilename.pfx –out keyfile.pem -nocerts
  5. Import the cert.pem file and keyfile.pem file into the Palo Alto Networks firewall on the Device tab >Certificates screen.
  6. In the case of a High Availability (HA) Pair, also load these files into the second Palo Alto Networks firewall, or copy the certificate and key via the High Availability widget on the dashboard.

The "Forward Trust" and "Forward Untrust" certificates:

NOTE: If you're using a self-signed CA, export the public CA certificate from the firewall and install the certificate as a Trusted Root CA on each machine's browser to avoid Untrusted Certificate error messages inside your browser. Network administrators usually use GPO to push out this certificate to each workstation.

IMPORTANT NOTE: Never set both checkboxes "Forward Trust Certificate" and "Forward Untrust Certificate" in the same certificate, and do not have the "Forward Untrust Certificate" deployed under a trusted certificate chain. If you do this, it will cause the firewall to present client devices with a CA certificate they trust, even when they connect to websites or applications that are presenting with invalid certificates to the firewall.

Below are some examples of browser errors if the self-signed CA Certificate is not trusted.

Firefox untrusted CA error:

Chrome untrusted CA error:

Internet Explorer untrusted CA error:

3. Configure SSL Decryption Rules

The network administrator determines what needs to be decrypted. A few suggestions for configuring SSL decryption rules: