SteelHead™ Deployment Guide - Protocols : SSL Deployments : Configuring SSL Optimization on SteelHeads
  
Configuring SSL Optimization on SteelHeads
This section describes how to deploy SSL optimization on SteelHeads and provides common configuration examples. This section includes the following topics:
  • SSL Optimization Required Components
  • Setting Up a Simple SSL Optimization Deployment
  • Generating the Proxy Certificate and Private Key Pair
  • SteelHead Secure Peering Scenarios
  • Deploying Secure Peering for All Optimized Traffic
  • SSL Optimization Required Components
    You need the following SSL components to deploy SSL on SteelHeads:
  • Enhanced Cryptography License Key
  • Proxy Certificate and Private Key
  • Certificate Chain Discovery
  • Certificate Authority Certificates
  • Peer Certificates
  • Enhanced Cryptography License Key
    U.S. export restrictions require that this license is installed on each SteelHead that has SSL optimization enabled. You can acquire an enhanced cryptography license key by filling out the online form available at http://sslcert.riverbed.com.
    Proxy Certificate and Private Key
    The proxy certificate is the certificate you configure on the server-side SteelHead for the server. Do not confuse this certificate with the certificate used for the secure inner channel or secure peering between the two SteelHeads and, also, the server certificate that is installed on the Web and application server.
    To avoid confusion, in this chapter, the certificate residing on the server-side SteelHead (for the server), is referred to as the proxy certificate. The proxy certificate might or might not be the same as the actual server certificate, but it serves the same function. The one exception is if you use client certificates. For details, see Client Certificate Support.
    The proxy certificate can be self-signed, signed by a well-known CA, or signed by your organization's own CA. It can be the same as, or different from, the certificate used by the actual server. The correct type of certificate depends on your deployment.
    You can use a single wild card certificate and its private key as the proxy certificate for multiple servers.
    For example, you might have three distinct servers using different certificates: sales.riverbed.com, internal.riverbed.com, and marketing.riverbed.com. You can add each of the three server certificates (as the proxy certificates) and their corresponding private keys, or you can add a single wild card certificate (*.riverbed.com) with its private key.
    In RiOS versions earlier than v6.0, you must configure a proxy certificate for each server. RiOS v6.0 and later, supports the use of wild card proxy certificates.
    RiOS v6.0 or later simplifies the SSL configuration process because the server-side SteelHead does not need to have a proxy certificate for each server individually. Prior to v6.0, you had to provide an IP address, port, and certificate to enable SSL optimization for a server. This method is impractical in cases where multiple servers shared the same server certificate because each server had to have a corresponding entry on the server-side SteelHead.
    In RiOS v6.0 or later, you simply add unique proxy certificates to a certificate pool on the server-side SteelHead. When a client initiates an SSL connection with a server, the SteelHead matches the common name of the certificate on the server with one in its proxy certificate pool. If it finds a match, it adds the server to the list of optimizable servers, and all subsequent connections to that server are optimized with the same proxy certificate.
    If it does not find a match, it adds the server name to the list of bypassed servers and all subsequent connections to that server are not optimized. The optimizable and bypassed server lists appear on the server-side SteelHead SSL Main Settings page of the Management Console.
    If your proxy certificate and private key are in a format other than PEM, PCKS12, or DER, you must convert the certificate and key before you import them. The file extension does not necessarily dictate the encoding, as many common extensions such as .crt, .cer or .key can be either PEM or DER encoded.
    To convert a certificate and private key, Riverbed recommends using an open source toolkit such as OpenSSL. For details, go to http://www.openssl.org/.
    For information about converting a Base64 encoded PCKS12 certificate to PEM, see the Riverbed Knowledge Base article Converting a PCKS12 Certificate/Key to PEM at https://supportkb.riverbed.com/support/index?page=content&id=S13301.
    Certificate Chain Discovery
    You can use intermediary certificates instead of signing all certificates with a root level certificate. In releases earlier than RiOS v5.5, you needed to put all of the intermediate certificates on the server-side SteelHead and keep them up-to-date. With RiOS v5.5 or later, you can configure the server-side SteelHead to automatically pull down intermediate certificates from the back-end server.
    Use the following command on the server-side SteelHead to enable certificate chain discovery:
    protocol ssl backend server chain-cert cache enable
    Alternatively you can use the Management Console to enable certificate chain discovery. Choose Optimization > SSL: Advanced Settings and select Enable SSL Server Certificate Chain Discovery. By default, this option is disabled.
    Certificate Authority Certificates
    Before the server-side SteelHead can establish an SSL connection to the server, it needs to verify the authenticity of the server certificate. This verification is based upon the model of trust relationships established within a public key infrastructure.
    In this model, the issuer of the certificate is a third party that is trusted by both the subject (owner) of the certificate and the party (client) relying on the certificate. A certificate authority (CA) is an entity that issues a certificate. A client establishes a trust relationship to the CA first, and subsequently, uses the certificate of the CA to verify the authenticity of a server certificate. A SteelHead establishing an SSL connection acts as a client.
    A SteelHead includes a list of commonly used public CA certificates preinstalled. When the certificate of your server is signed by a private CA, you must install that private CA certificate in the server-side SteelHead. This certificate establishes the trust relationship to the private CA and, consequently, the server certificates that this private CA issues.
    Before adding a CA, you must verify that it is genuine; a malicious CA can compromise network security.
    Peer Certificates
    Each SteelHead participating in SSL optimization requires a peer certificate. The peer certificates allow the client-side and server-side SteelHeads to establish a secure inner channel. You can distribute these certificates several different ways: manual cut-and-paste; using the white, gray, and black peering lists; or through the SCC.
    The peer certificates between the SteelHeads can be, and in most cases are, self-signed certificates. The session keys derived between the SteelHeads are used for encrypting data within the secure inner channel. The encrypted data ensures that the SSL session is secure end to end. For details, see Overview of SSL.
    Riverbed highly recommends that you use the SCC to centrally configure SteelHead secure peering and manage the peering certificates in a medium-to-large size SteelHead deployment. Using the SCC allows you to simplify SteelHead management and increase your operational efficiency.
    Setting Up a Simple SSL Optimization Deployment
    This section describes a simple deployment to help you set up, test, and understand basic SSL optimization functionality. This simple deployment chooses simplicity over security, and installs a self-signed proxy certificate on the server-side SteelHead. You can test this deployment against an operational Web server that uses SSL.
    This deployment example uses a self-signed certificate. Riverbed recommends that you verify with your enterprise IT security officer that the use of self-signed certificates is in compliance with your enterprise IT security practices.
    To complete this deployment, you need two SteelHeads, a WAN simulator, a LAN connection between the client and client-side SteelHead, and another LAN connection between the server and the server-side SteelHead. This example uses a self-signed certificate; however, the configuration steps remain the same for a CA-signed certificate.
    : You can enable a Certificate Authority (CA) service in SCC v8.6 and later. You can configure the CA service on the SCC as a root CA or an intermediate CA. This CA service enables you to issue trusted CA-signed secure peering certificates and proxy certificates to the SteelHeads that are managed by the SCC.
    This deployment assumes that your Web server is configured for SSL connections and is running, and that the client-side and the server-side SteelHeads can optimize non-SSL TCP traffic.
    To set up a simple deployment for SSL optimization
    In the SteelHead Management Console, Choose Administration > Maintenance: Licenses.
    Verify that both the client-side and server-side SteelHead have the Enhanced Cryptographic License Key installed to enable SSL optimization.
    To set up the client-side SteelHead:
  • On the client-side SteelHead, choose Networking > App Definitions: Port Labels.
  • Select the secure port label, remove port 443, and click Apply.
  • The default in-path rules contain a pass-through rule for all traffic destined to the ports defined in the secure port label. RiOS intercepts SSL traffic on the well-known TCP port 443. Use an in-path rule with a custom port and preoptimization policy set to SSL to intercept SSL traffic on another TCP port.
    Enable SSL Optimization on both the client-side and server-side SteelHeads.
  • From the SteelHead Management Console, choose Optimization > SSL: SSL Main Settings (Figure 11‑5).
  • Enable SSL Optimization and click Apply.
  • Restart the optimization service.
  • Figure 11‑5. SSL Main Settings Page
    Create a proxy certificate on the server-side SteelHead:
  • Choose Add a New SSL Certificate (Figure 11‑6).
  • Enter a name for the proxy certificate.
  • Select Generate Self-Signed Certificate and New Private Key.
  • Enter the proxy certificate common name and other details.
  • The common name must match the server certificate common name or one of its subject alternative names.
  • Click Add.
  • Figure 11‑6. Add a New SSL Certificate
    Configure secure peering (SSL) between the client-side and server-side SteelHeads.
  • From the client-side SteelHead, choose Optimization > SSL: Secure Peering (SSL).
  • The default SSL secure peering settings is SSL Only. This setting instructs the SteelHead to pass all optimized SSL traffic through the secure inner channel.
  • Under Certificate, select PEM, and copy the client-side SteelHead secure peering (SSL) certificate (Figure 11‑7).
  • Do not confuse this certificate with the proxy certificate.
    Figure 11‑7. Secure peering (SSL) in PEM Format
  • From the server-side SteelHead, add the client-side SteelHead as a trusted peer by selecting Add a New Trusted Entity (Figure 11‑8).
  • Select Trust New Certificate.
  • Select Cert Text and paste the client-side SteelHead secure peering (SSL) certificate into the text box.
  • Click Add.
  • Figure 11‑8. Adding a New Trusted Entity
    Repeat the procedure to configure the server-side SteelHead as a trusted peer in the client-side SteelHead.
    To verify that SSL optimization is successful
    Connect to the secure Web server from the client.
    Choose Reports > Networking: Current Connections report in the Management Console on the server-side SteelHead and verify that the connections are being optimized without any protocol errors.
    If you see any protocol errors, expand the connection and examine the details.
    For information about troubleshooting and verification, see Troubleshooting and Verification.
    The SteelHeads are capable of automatically detecting and configuring secure peering (SSL) between themselves if they are both using self-signed secure peering certificates. If SSL optimization is correctly configured on both the client-side and server-side SteelHeads, the self-signed secure peering certificate of the client-side SteelHead automatically populates into the server-side SteelHead self-signed peer gray list (Figure 11‑9) and vice versa after an SSL connection is attempted across the SteelHeads. Use the drop-down menu to move the peer SteelHead into either self-signed peer white list or self-signed peer black list.
    For more information, see Secure Peering Using the Self-Signed Peer White, Gray, and Black Lists.
    Figure 11‑9. Self-Signed Peer Gray List
    The client uses the proxy certificate to secure the SSL session instead of the server certificate in a SteelHead optimized SSL connection. This usage is because of the way the SteelHead terminates an optimized SSL connection. For more information, see How SteelHeads Terminate an Optimized SSL Connection.
    Prior to RiOS v5.5, port 443 was not in the list of ports that had HTTP-specific optimization enabled. To turn this port on for an SSL-enabled Web application in RiOS versions prior to v5.5, you must add the appropriate in-path rule on the client-side SteelHead to turn on HTTP optimization, in addition to the above steps.
    Generating the Proxy Certificate and Private Key Pair
    The following table shows the four options available for generating the proxy certificate and its private key. The proxy certificate and its private key are installed in the server-side SteelHead. To optimize an SSL session, a proxy certificate for the server is required.
    In an optimized SSL session, the client receives the proxy certificate instead of the server certificate. The proxy certificate might or might not be the same as the server certificate. This scenario is the same for its private key. Nonetheless, the choice of proxy certificate is transparent to the client as the server common name in both certificates is the same, and the connection is secure end-to-end.
    For more information, see How SteelHeads Terminate an Optimized SSL Connection and Proxy Certificate and Private Key.
     
    Proxy Certificate
    Private Key
    Description
    Real server certificate
    Real private key
    You can reuse the real server certificate and private key pair as the proxy certificate and private key pair. This option is ideal but is not always be available. For example, you can connect to a cloud-hosted application over SSL that uses a public certificate. The real server certificate and its private key are not available to you because you do not belong to the organization that owns the application.
    New CA-signed proxy certificate
    Real private key
    You may reuse the real private key but create a new proxy certificate that is signed by a different CA. The real private key is required in situations where there is a security dependency from the client application, for example, when using client certificates for authentication.
    Choose this option if you want to administer all of your SteelHead proxy certificates (and secure peering certificates) from a different CA, for example, the SCC CA. You can also have some other requirements that cannot be fulfilled by the real CA, for example, the security requirements preclude server impersonation, the subject alternative names are a problem, you desire a longer validity period than the original certificate, or you want to use a wild card common name that is broader than the original.
    When using a CA-signed certificate, the CA certificate must be installed in the trusted root certification authorities store of the client machine.
    New CA-signed proxy certificate
    New private key
    You can generate a new CA-signed proxy certificate and private key pair. This option can be an administratively quick way to obtain a new proxy certificate and private key pair for SteelHead SSL optimization. If your SteelHeads are managed with SCC v8.6 or higher, you can use the SCC CA to generate the new proxy certificate and private key pair.
    New self-signed proxy certificate
    New private key
    You can generate a new self-signed proxy certificate and private key pair. A SteelHead is capable of generating a new self-signed certificate and private key pair for its proxy and peering certificates. This is the fastest option available and can be used temporarily to fulfill the requirement. However, for security purposes, some browsers and applications do not accept self-signed certificates. You cannot establish the SSL connection in this case.
    SteelHead Secure Peering Scenarios
    You can use the following methods to configure the peer certificates used for secure peering (SSL) between the client-side and server-side SteelHeads:
  • Secure Peering Using the Self-Signed Peer White, Gray, and Black Lists
  • Secure Peering with CA-Signed Certificates
  • Managing SteelHead Secure Peering Trusts with an SCC
  • Secure Peering Using the Self-Signed Peer White, Gray, and Black Lists
    You can use peering lists to configure peer certificates on SteelHeads running RiOS v5.0 or later. When SSL optimization is enabled, and an optimizable SSL connection is attempted across the SteelHeads, the remote peer is detected and its peering certificate is automatically populated into the self-signed peer gray list. The connection remains unoptimized because the remote peer is listed in the self-signed peer gray list.
    You can examine the peer certificate for authenticity and move any peer from the gray list to either the white list or the black list. If you trust the remote peer, move it into the self-signed peer white list to begin optimizing the SSL connection. If you do not trust the remote peer, move it into the self-signed peer black list to prevent the SSL connection from being optimized.
    Riverbed highly recommends that you verify the authenticity of the secure peering certificate (and any other certificate in general as a best practice for IT security) before you trust it.
    Figure 11‑10 shows how you can move the peer certificate into either the white or black list with the drop-down menu.
    Figure 11‑10. Self-Signed Peer Gray List
    To verify that the SSL connection is successfully optimized after you have configured secure peering, view the connection in Reports > Networking: Current Connections. For information about verifying SSL connections, see Troubleshooting and Verification.
    Secure Peering with CA-Signed Certificates
    If you use CA-signed peer certificates, you can configure the SteelHead to trust the CA certificate instead of the peer certificate. The SteelHead implicitly trusts all certificates that the trusted CA issues. Alternatively, you can manually add the peer certificate into the peering trust list.
    To add a remote peer SteelHead as a trusted peer using the peering trust list
    Choose Optimization > SSL: Secure Peering (SSL).
    Select Peering Trust > Add a New Trusted Entity.
    Select either Trust Existing CA or Trust New Certificate.
    Choose Trust New Certificate (Figure 11‑11), and copy and paste the peer certificate of the remote peer SteelHead into the Cert Text box or import the certificate file.
    Click Add.
    Figure 11‑11. Adding a Trusted Remote Peer
    Alternatively, you can choose to trust the CA that issues the peer certificate. The SteelHead then trusts all the certificates that are issued by this trusted CA.
  • Choose Trust Existing CA (Figure 11‑12), and select the CA from the drop-down list. The list of CAs shown here is configured in Optimization > SSL: Certificate Authorities (Figure 11‑13)
  • Figure 11‑12. Configuring Secure Peering Trust—Trust Existing CA
    Figure 11‑13. SteelHead Trusted Certificate Authorities List
    If you have an intermediary CA, you must add them with the root CA. In secure peering, both the client-side and server-side SteelHead functions as a SSL client and server at the same time. For more details, go to https://supportkb.riverbed.com/support/index?page=content&id=S14925.
    Managing SteelHead Secure Peering Trusts with an SCC
    Riverbed recommends that you configure a medium-to-large SteelHead deployment for SSL optimization with the help of an SCC. The SCC can simplify the configuration of SSL optimization and secure peering, and increase the operational efficiency of a SteelHead deployment through central management thereby enabling the deployment size to easily scale.
    The configuration effort required to manage the secure peering certificates and trusts in a SteelHead deployment increases proportionally with the number of SteelHeads deployed. The increase is due to the following reasons:
  • Because multiple SteelHeads are involved, there are more secure peering certificates and trust relationships to manage.
  • The number of proxy certificates might increase, and it is possible the same proxy certificate might be distributed to more than one SteelHead.
  • You can reduce the number of proxy certificates by preparing a wild card certificate that is suitably valid, trusted, and matches the names of several target servers rather than generating one for each server.
  • You can incorporate other features to increase the security of your SteelHead deployment: for example, you might encrypt the RiOS data store in selected locations or change the secure vault password. The secure vault stores sensitive information from your SteelHead configuration. The SCC is the only device that can supply the password over a secure channel to automatically unlock the secure vault whenever a SteelHead starts up.
  • A secure inner channel must be set up between the client-side and server-side SteelHead in a deployment where SSL traffic or any other secure protocol traffic, such as signed-SMB and encrypted-MAPI, are optimized. Secure protocol traffic, including SSL traffic, are passed through the secure inner channel to maintain end-to-end data security. SCC v8.6 and later incorporates a certificate authority that can be used to centrally issue, distribute, and manage the secure peering certificates and peering trusts, in addition to the proxy certificates for SSL optimization. Using and trusting only CA-signed certificates increases the security model of an SSL deployment.
    For information about using the SCC CA to manage the secure peering certificates and trust, see the SteelCentral Controller for SteelHead Deployment Guide. For information about adding a certificate authority to the secure peering trust configuration, see Secure Peering with CA-Signed Certificates.
    Deploying Secure Peering for All Optimized Traffic
    In a high-security environment, you might want only known and trusted SteelHeads to peer for optimized traffic flows. Prior to RiOS v6.0, you could control peering only by modifying the peering tables, which was limiting because a secure model of peering trust could not be established between the SteelHeads. Modifying the peering tables creates situations in which SteelHeads can peer and optimize flows that might not be explicitly trusted. Using SSL secure peering, and forcing all traffic flows to flow through the secure inner channel, you can create an environment of explicit trust—only SteelHeads that can trust its peers can peer and optimize traffic flows.
    In federated networks, it is common for organizationally separate SteelHeads to be aware of each other. If you use only secure peering, you create an environment of trust between the SteelHeads. If the secure inner channel connection fails, all conversations between the SteelHeads pass through. For more information about setting up secure peering, see Setting Up a Simple SSL Optimization Deployment or SteelHead Secure Peering Scenarios.
    Figure 11‑14 shows a client connection to a server. The default behavior of the SteelHead is to optimize this connection. In an environment in which secure peering is used for all optimized traffic, the SteelHeads have to trust each other before a secure inner channel can be established to carry the optimized traffic. Use the following procedure to set up a SteelHead to secure all optimized traffic and only optimize through a secure inner channel.
    Figure 11‑14. Trusted Peers
    To ensure all optimized traffic is secure
    Chose Configure Optimization > SSL: Secure Peering (SSL) in the Management Console.
    Select All from the Traffic Type drop-down list.
    Clear the Fallback to No Encryption check box.
    Figure 11‑15. Secure Peering (SSL) Page
    Click Apply.
    If you select All from the Traffic Type you can cause up to a 10% performance decline in higher-capacity SteelHeads. Take this performance metric into account when sizing a complete secure SteelHead peering environment.
    Riverbed recommends that you use NTP time synchronization, instead of manually synchronizing the clocks, on both the server-side and client-side SteelHeads. It is critical that the peer SteelHead time is the same for the trust relationship to work. Choose Administration > System Settings > Date/Time. Under Date and Time, select Use NTP Time Synchronization.