Applies To:
Show VersionsBIG-IP versions 1.x - 4.x
- 3.1.1 PTF-01, 3.1.1, 3.1.0
4
Configuring an SSL Accelerator
Introducing the SSL Accelerator
The SSL Accelerator feature allows the BIG/ip Controller to accept HTTPS connections (HTTP over SSL), connect to a web server, retrieve the page, and then send the page to the client.
A key component of the SSL Accelerator feature is that the BIG/ip Controller can retrieve the web page using an unencrypted HTTP request to the content server. With the SSL Accelerator feature, you can configure an SSL gateway on the BIG/ip Controller that decrypts HTTP requests that are encrypted with SSL. Decrypting the request offloads SSL processing from the servers to the BIG/ip Controller. This also allows the BIG/ip Controller to use the header of the HTTP request to intelligently control how the request is handled.
When the SSL gateway on the BIG/ip Controller connects to the content server, it uses the original client's IP address and port as its source address and port, so that it appears to be the client (for logging purposes).
This chapter describes the following features of the BIG/ip Controller SSL Accelerator:
- Hardware accelerator options
- Configuring an SSL Accelerator
- Enabling and disabling an SSL Accelerator
- Viewing the configuration of an SSL Accelerator
- Optional SSL Accelerator configuration
Figure 4.1 An incoming SSL connection received by an SSL Accelerator configured on a redundant BIG/ip Controller system
Hardware acceleration options
Because the SSL Accelerator feature is computationally intensive, we recommend that you use this feature on a BIG/ip Controller with an encryption accelerator installed.
The BIG/ip Controller detects the accelerator card at boot up and starts the server for the card.
Note: Hardware acceleration greatly increases the number of SSL transactions the BIG/ip Controller can handle.
Configuring the SSL Accelerator
There are several steps required to set up the SSL Accelerator on the BIG/ip Controller. These steps include:
- Generating a key and obtaining a certificate
- Configuring the BIG/ip Controller with the certificate and key
- Creating an HTTP virtual server
- Creating the gateway for the SSL Accelerator
An additional configuration option you can use with the SSL Accelerator is a last hop pool. You can use this option if the SSL Accelerator accepts connections from multiple firewalls or routers. For additional information about this option, see Optional SSL Accelerator configuration, on page 4-18.
Generating a key and obtaining a certificate
In order to use the SSL Accelerator feature you must obtain a valid x509 certificate from an authorized certification authority (CA). The following list contains some companies that are certification authorities:
- Verisign (http://www.verisign.com)
- Digital Signature Trust Company (http://secure.digsigtrust.com)
- GlobalSign (http://www.globalsign.com)
- GTE Cybertrust (http://www.cybertrust.gte.com)
- Entrust (http://www.entrust.net)
You can generate a key, a temporary certificate, and a certificate request form with the F5 Configuration utility or from the command line.
We recommend using the F5 Configuration utility for this process. The certification process is generally handled through a web page. Parts of the process require you to cut and paste information from a browser window in the F5 Configuration utility to another browser window on the web site of the certification authority (CA).
Additional information about keys and certificates
You must have a separate certificate for each domain name on each redundant pair of BIG/ip Controllers, regardless of how many non-SSL web servers are load balanced by the BIG/ip Controller.
If you are already running an SSL server you can use your existing keys to generate temporary certificates and request files. However, you must obtain new certificates if the ones you have are not for the following web server types:
- Apache
- OpenSSL
- Stronghold
Warning: The BIG/ip Controller does not support Microsoft Internet Information Server (IIS) certificates. You must generate new certificates for your servers if they currently use IIS certificates.
Generating a key and obtaining a certificate in the F5 Configuration utility
To obtain a valid certificate, you must have a private key. If you do not have a key, you can use the F5 Configuration utility on the BIG/ip Controller to generate a key and a temporary certificate. You can also use the F5 Configuration utility to create a request file you can submit to a certification authority (CA). You must complete three tasks in the F5 Configuration utility to create a key and generate a certificate request.
- Generate a certificate request
- Submit the certificate request to a CA and generate a temporary certificate
- Install the SSL certificate from the CA
Each of these tasks is described in detail in the following section.
Creating a new certificate request in the F5 Configuration utility
- In the navigation pane, click Proxies.
The Proxies screen opens. - On the toolbar, click Create SSL Certificate Request.
The New SSL Certificate Request screen opens. - In the Key Information section, select a key length and key file name.
a) Key Length
Select the key length you want to use for the key. You can choose either 512 or 1024 bytes.b) Keyfile Name
Type in the name of the key file. This should be the fully qualified domain name of the server for which you want to request a certificate. You must add the .key file extension to the name. - In the Certificate Information section, type the information specific to your company. This information includes:
· Country
Type the two letter ISO code for your country, or select it from the list. For example, the two-letter code for the United States is US.· State or Province
Type the full name of your state or province, or select it from the list. You must enter a state or province.· Locality
Type the city or town name.· Organization
Type the name of your organization.· Organizational Unit
Type the division name or organizational unit.· Domain Name
Type the name of the domain upon which the server is installed.· Email Address
Type the email address of a person who can be contacted about this certificate.· Challenge Password
Type the password you want to use as the challenge password for this certificate. The CA uses the challenge password to verify any changes you make to the certificate at a later date.· Retype Password
Retype the password you entered for the challenge password. - Click the Generate Certificate Request button.
After a short pause, the SSL Certificate Request screen opens. - In the SSL Certificate Request screen, you can start the process of obtaining a certificate from a certification authority and you can generate and install a temporary certificate:
· Begin the process for obtaining a certificate from a CA
Click on the URL of a certification authority (CA) to begin the process of obtaining a certificate for the server. After you select a CA, follow the directions on their web site to submit the certificate request. After your certificate request is approved, and you receive a certificate back from the CA, see Installing certificates from the CA in the F5 Configuration utility, on page 4-10, for information about installing it on the BIG/ip Controller.· Generate and install a temporary certificate
Click the Generate Self-Signed Certificate button to create a self-signed certificate for the server. We recommend that you use the temporary certificate for testing only. You should only take your site live after you receive a properly-signed certificate from a certification authority. When you click this button, a temporary certificate is created and installed on the BIG/ip Controller. This certificate is valid for 30 days. This temporary certificate allows you to set up an SSL gateway for the SSL Accelerator while you wait for a CA to return a permanent certificate.
Generating a key and obtaining a certificate from the command line
To obtain a valid certificate, you must have a private key. If you do not have a key, you can use the genconf and genkey utilities on the BIG/ip Controller to generate a key and a temporary certificate. The genkey and gencert utilities automatically generate a request file you can submit to a certification authority (CA). If you have a key, you can use the gencert utility to generate a temporary certificate and request file. These utilities are described in the following list:
- genconf
This utility creates a key configuration file that contains specific information about your organization. The genkey utility uses this information to generate a certificate. - genkey
After you run the genconf utility, run this utility to generate a temporary 30 day certificate for testing the SSL Accelerator on the BIG/ip Controller. This utility also creates a request file that you can submit to a certification authority (CA) to obtain a certificate. - gencert
If you already have a key, run this utility to generate a temporary certificate and request file for the SSL Accelerator.
To generate a key configuration file using the genconf utility
If you do not have a key, you can generate a key and certificate with the genconf and genkey utilities. First, run the genconf utility from the root (/) with the following commands:
cd /
/var/asr/gateway/bin/genconf
The utility prompts you for information about the organization for which you are requesting certification. This information includes:
- The fully qualified domain name (FQDN) of the server
- The two letter ISO code for your country
- The full name of your state or province
- The city or town name
- The name of your organization
- The division name or organizational unit
For example, Figure 4.2 contains entries for the server my.server.net:
Figure 4.2 Example entries for the genconf utility
Common Name (full qualified domain name): my.server.net
Country Name (ISO 2 letter code): US
State or Province Name (full name): WASHINGTON
Locality Name (city, town, etc.): SEATTLE
Organization Name (company): MY COMPANY
Organizational Unit Name (division): WEB UNITAfter you run the genconf utility, you can run the genkey utility to create a temporary certificate and a request file.
To generate a key using the genkey utility
After you run the genconf utility, you can generate a key with the genkey utility. Type the following command from the root (/) to run the genkey utility:
cd /
/var/asr/gateway/bin/genkey <server_name>
For the <server_name>, type the FQDN of the server to which the certificate applies. After the utility starts, it prompts you to verify the information created by the genconf utility. After you run this utility, a certification request form is created in the following directory:
/var/asr/gateway/requests/<fqdn>.req
The <fqdn> is the fully qualified domain name of the server. Please contact your certification authority (CA) and follow their instructions for submitting this request form.
In addition to creating a request form you can submit to a certification authority, this utility also generates a temporary certificate. The temporary certificate is located in:
/var/asr/gateway/certs/<fqdn>.cert
The <fqdn> is the fully qualified domain name of the server.
Note that you must copy the key and certificate to the other controller in a redundant system.
This temporary certificate is good for thirty days, after which time you should have a valid certificate from your CA. If you do not have a certificate within 30 days, you can re-run this program.
Warning: Be sure to keep your previous key if you are still undergoing certification. The certificate you receive is valid only with the key that originally generated the request.
To generate a certificate with an existing key with the gencert utility
To generate a temporary certificate and request file to submit to the certification authority with the gencert utility, you must first copy an existing key for a server into the following directory on the BIG/ip Controller:
/var/asr/gateway/private/
After you copy the key into this directory, type the following command at the command line:
cd /
/var/asr/gateway/bin/gencert <server_name>
For the <server_name>, type the FQDN of the server to which the certificate applies. After the utility starts, it prompts you for various information. After you run this utility, a certification request form is created in the following directory:
/var/asr/gateway/requests/<fqdn>.req
The <fqdn> is the fully qualified domain name of the server. Please contact your certification authority (CA) and follow their instructions for submitting this request form.
Installing certificates from the certification authority (CA)
After you obtain a valid x509 certificate from a certification authority (CA) for the SSL Accelerator, you must copy it onto each BIG/ip Controller in the redundant configuration. You can configure the accelerator with certificates from the F5 Configuration utility or from the command line.
Installing certificates from the CA in the F5 Configuration utility
- In the navigation pane, click Proxies.
The Proxies screen opens. - On the toolbar, click Install SSL Certificate.
The Install SSL Certificate screen opens. - In the Certfile Name box, type the fully qualified domain name of the server with the file extension .cert. Note that if you generated a temporary certificate when you submitted a request to the CA, select the name of the certificate from the drop down list. This allows you to overwrite the temporary certificate with the certificate from the CA.
- Paste the text of the certificate into the Install SSL Certificate window. Make sure you include the Begin Certificate line and the End Certificate line. For an example of a certificate, see Figure 4.3.
- Click the Write Certificate File button.
Figure 4.3 An example of a certificate
-----BEGIN CERTIFICATE-----
MIIB1DCCAX4CAQAwDQYJKoZIhvcNAQEEBQAwdTELMAkGA1UEBhMCVVMxCzAJBgNV
BAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMRQwEgYDVQQKEwtGNSBOZXR3b3JrczEc
MBoGA1UECxMTUHJvZHVjdCBEZXZlbG9wbWVudDETMBEGA1UEAxMKc2VydmVyLm5l
dDAeFw0wMDA0MTkxNjMxNTlaFw0wMDA1MTkxNjMxNTlaMHUxCzAJBgNVBAYTAlVT
MQswCQYDVQQIEwJXQTEQMA4GA1UEBxMHU2VhdHRsZTEUMBIGA1UEChMLRjUgTmV0
d29ya3MxHDAaBgNVBAsTE1Byb2R1Y3QgRGV2ZWxvcG1lbnQxEzARBgNVBAMTCnNl
cnZlci5uZXQwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAsfCFXq3Jt+FevxUqBZ9T
Z7nHx9uaF5x9V5xMZYgekjc+LrF/yazhmq4PCxrws3gvJmgpTsh50YJrhJgfs2bE
gwIDAQABMA0GCSqGSIb3DQEBBAUAA0EAd1q6+u/aMaM2qdo7EjWx14TYQQGomYoq
eydlzb/3FOiJAynDXnGnSt+CVvyRXtvmG7V8xJamzkyEpZd4iLacLQ==
-----END CERTIFICATE-----
After the certificate is installed, you can continue with the next step to creating an SSL gateway for the server.
Installing certificates from the CA on the command line
Copy the certificate into the following directory on each BIG/ip Controller in a redundant system:
/var/asr/gateway/certs/
Note: The certificate you receive from the certification authority (CA) should overwrite the temporary certificate generated by genkey or gencert.
If you used the genkey or gencert utilities to generate the request file, a copy of the corresponding key should already be in the following directory on the BIG/ip Controller:
/var/asr/gateway/private/
Warning: The keys and certificates must be in place on both controllers in a redundant system before you configure the SSL Accelerator. You must do this manually; the configuration synchronization utilities do not perform this function.
Create an HTTP virtual server
After you configure the BIG/ip Controller with the certificates and keys, the next step is to create a virtual server that references a pool containing the HTTP servers for which the SSL Accelerator handles connections. Note that before you create the HTTP virtual server, you can use a pool or rule that references your HTTP servers. The example in this section describes how to create a virtual server that references a pool that contains the HTTP virtual servers. For more information about creating a pool, see Defining pools, on page 3-4.
Creating an HTTP virtual server in the F5 Configuration utility
- In the navigation pane, click Virtual Severs.
The Virtual Servers screen opens. - On the tool bar, click Add Virtual Server.
The Add Virtual Server screen opens. - Add the attributes you want for the virtual server such as Address, Port, Unit ID (active-active only), and Interface.
- In the Resources section, click Pool.
- In the Pool list, select the pool of HTTP servers you want to use with the virtual server.
- Click Apply.
Creating an HTTP virtual server from the command line
Note that before you create the HTTP virtual server, you must configure a pool that contains your HTTP servers. For more information about creating pool, see Defining pools, on page 3-4. After you have defined a pool that contains the HTTP servers, use the following syntax to create a virtual server that references the pool:
bigpipe vip <virt ip>:<port> use pool <pool_name>
For example, if you want to create a virtual server 20.1.1.1:80, that references a pool of HTTP servers named http_pool, you would type the following command:
bigpipe vip 20.1.1.1:80 use pool http_pool
After you create the virtual server that references the pool of HTTP servers, you can create an SSL gateway. The following section describes how to create an SSL gateway.
Create an SSL gateway
After you create the HTTP virtual server for which the SSL Accelerator handles connections, the next step is to create an SSL gateway.
Creating an SSL gateway in the F5 Configuration utility
- In the navigation pane, click Proxies.
The Proxies screen opens. - On the toolbar, click Add Proxy.
The Add Proxy screen opens. - In the Proxy Address box, type the IP address for the SSL gateway.
- In the Proxy Netmask box, type the netmask you want to use for the SSL gateway. If you leave this setting blank, the BIG/ip Controller creates a default based on the network class of the IP address on the external (destination processing) interface. Type a user-defined netmask only if necessary.
- In the Proxy Broadcast box, type the broadcast address you want to use for this SSL gateway. The BIG/ip Controller automatically generates a broadcast address if you do not type one. Type a user-defined broadcast address only if necessary.
- In the Proxy Port box, type the port number that the proxy server uses, or select a service from the list box. Note that if you select a service, the Configuration utility uses the default port number associated with that service.
- In the Unit ID list, select the unit number you want to assign this SSL gateway. Connections served by this SSL gateway are managed by the controller assigned this unit ID. This only applies if this controller is running in active-active mode.
- For Interface, select the destination processing interface on which you want to create the SSL gateway. Select default to allow the F5 Configuration utility to select the interface based on the network address of the SSL gateway. If you choose None, the BIG/ip Controller does not create an alias and generates no ARPs for the virtual IP address.
- In the Destination Address box, type the IP address or host name of the node or virtual server to which the SSL gateway maps. This should be the virtual server you created that references the pool of HTTP servers on your network that will respond to requests handled by the SSL gateway.
- In the Destination Port box, type a port name or number, such as port 80 or http, or select the service name from the drop-down list.
- In the Destination Target list, select the type of target to which the proxy sends connections:
· External Node
Select External Node if the SSL gateway handles connections for an IP address of a server that resides on the network instead of a virtual server.· Local Virtual Server
Select Local Virtual Server if the SSL accelerator gateway handles connections for a virtual server located on the BIG/ip Controller. - In the SSL Certificate box, type the name of the SSL certificate you installed on the BIG/ip Controller. You can select the certificate you want to use from the drop down list.
- In the SSL Key box, type the name of the SSL key for the certificate you installed on the BIG/ip Controller. You can select the key from the drop down list. It is important that you select the key used to generate the certificate you selected in the SSL Certificate box.
- In the Last Hop Pool list, select the last hop pool that contains other network devices from which the BIG/ip Controller receives connections. This feature is optional. You need to use this feature only if the SSL gateway is accepting connections from multiple network devices.
- Click Apply.
Creating an SSL gateway from the command line
Use the following command syntax to create an SSL gateway. Use this syntax if you want to configure a gateway by specifying a bitmask instead of a netmask and broadcast address:
bigpipe proxy <ip>:<port> [/bitmask] [<ifname>] [<unit id>] target
<server | vip> <ip>:<port> ssl enable key <key> cert <cert>
Use this syntax if you want to configure a gateway by specifying a netmask and broadcast address instead of a bitmask:
bigpipe proxy <ip>:<port> [<ifname>] [<unit id>] netmask <ip>
[broadcast <ip>] target <server | vip> <ip>:<port> ssl enable
key <key> cert <cert>
For example, you can create an SSL gateway from the command line that looks like this:
bigpipe proxy 10.1.1.1:443 exp0 unit 1 { netmask 255.255.255.0
broadcast 10.1.1.255 target vip 20.1.1.1:80 ssl enable key
my.server.net.key cert my.server.net.cert }
Note that when the configuration is written out in the bigip.conf file, the line ssl enable is automatically added. When the SSL gateway is written in the /etc/bigip.conf file, it looks like this:
Figure 4.4 An example SSL gateway configuration
proxy 10.1.1.1:443 exp0 unit 1 {
netmask 255.255.255.0
broadcast 10.1.1.255
target vip 20.1.1.1:80
ssl enable
key my.server.net.key
cert my.server.net.cert
}
Enabling, disabling, or deleting an SSL gateway
After you have created an SSL gateway, you can enable, disable it, or delete it using the F5 Configuration utility or from the command line.
Enabling or disabling an SSL gateway in the F5 Configuration utility
- In the navigation pane, click Proxies.
The Proxies screen opens. - In the Proxies list, select the SSL gateway you want to enable or disable.
The Proxy Properties screen opens. - In the Proxy Properties screen, clear the Enable box to disable the Proxy, or check the Enable box to enable the SSL gateway.
- Click Apply.
Deleting an SSL gateway in the F5 Configuration utility
- Click Proxies in the navigation pane.
The Proxies screen opens. - In the Proxies list, select the SSL gateway you want to delete.
The Proxy Properties screen opens. - On the toolbar, click Delete.
Enabling, disabling, or deleting an SSL gateway from the command line
You can enable, disable, or delete an SSL gateway with the following syntax:
bigpipe proxy <ip>:<port> enable
bigpipe proxy <ip>:<port> disable
bigpipe proxy <ip>:<port> delete
For example, if you want to enable the SSL gateway 209.100.19.22:443, type the following command:
bigpipe proxy 209.100.19.22:443 enable
For example, if you want to disable the SSL gateway 209.100.19.22:443, type the following command:
bigpipe proxy 209.100.19.22:443 disable
For example, if you want to delete the SSL gateway 209.100.19.22:443, type the following command:
bigpipe proxy 209.100.19.22:443 delete
Displaying the configuration for an SSL gateway from the command line
You can view the configuration information for an SSL gateway from the command line with the show keyword.
Displaying configuration information for an SSL accelerator gateway from the command line
Use the following syntax to view the configuration for the specified SSL gateway:
bigpipe proxy <ip>:<port> show
For example, if you want to view configuration information for the SSL gateway 209.100.19.22:80, type the following command:
bigpipe proxy 209.100.19.22:80 show
Figure 4.5 Output from the bigpipe proxy show command
SSL PROXY +---> 11.12.1.200:443 -- Originating Address -- Enabled Unit 1
| Key File Name balvenie.scotch.net.key
| Cert File Name balvenie.scotch.net.cert
| LastHop Pool Name
+===> 11.12.1.100:80 -- Destination Address -- Server
SSL PROXY +---> 11.12.1.120:443 -- Originating Address -- Enabled Unit 1
| Key File Name balvenie.scotch.net.key
| Cert File Name balvenie.scotch.net.cert
| LastHop Pool Name
+===> 11.12.1.111:80 -- Destination Address -- Vip
Optional SSL Accelerator configuration
Depending on your network configuration, the SSL Accelerator may require additional configuration. For example, in cases where the BIG/ip Controller receives connections from several devices, such as routers or firewalls, you can configure a last hop pool for the SSL Accelerator. The last hop pool must contain the IP addresses of the routers or firewalls from which the BIG/ip Controller receives connections.
Create a last hop pool that includes additional network devices
If the SSL gateway accepts connections from multiple firewalls or routers, you can configure a last hop pool for the SSL gateway. This last hop pool can contain any other devices, such as firewalls or routers, through which connections are received by the BIG/ip Controller.
Creating a last hop pool with additional network devices in the F5 Configuration utility
- In the navigation pane, click Pools.
The Pools screen opens. - On the toolbar, click Add Pool.
The Add Pool screen opens. - In the Pool Name box, type the name you want to use for the pool.
- From the load balancing method list, select the load balancing mode you want to use for this pool.
- Use the resources options to add the devices from which the BIG/ip Controller receives connections. To add devices to the pool, type the IP address in the Node Address box, type the port number in the Port box, and then type in the ratio or priority for this node. Finally, to add the node to the list, click the add ( >>) button.
· Node Address
Type the IP addresses of routers or other devices from which the BIG/ip Controller receives connections.· Port
Type the port number of the port you want to use for this node in the pool.· Ratio
Type a number to assign a ratio to this node within the pool. For example, if you are using the ratio load balancing method and you type a 1 in this box, the node will receive fewer connections from the load-balancing pool than a node marked 2.· Priority
Type a number to assign a priority to this node within the pool. For example, if you are using a priority load-balancing method and you type a 1 in this box, the node will have a lower priority in the load-balancing pool than a node marked 2.· Current Members
This is a list of the member nodes that are part of the load balancing pool. - Click Apply.
Creating a last hop pool with additional network devices from the command line
Use the following syntax to configure a last hop pool for the SSL gateway that contains the additional network devices:
bigpipe pool <pool_name> {lb_mode <lb_mode_specification> member
<member_definition>... <member_definition>}
For example, you might use the following command to create a last hop pool that contains three routers:
bigpipe pool ssllasthop_pool {lb_mode ratio_member member
11.12.1.100:80 ratio 1 priority 1 member 11.12.1.101:80 ratio 1
priority 1 11.12.1.102:80 ratio 1 priority 1}
After you create the last hop pool, you must modify the SSL gateway so that it references the last hop pool. The next section describes how to do this with the F5 Configuration utility or from the command line.
Modify the SSL gateway so that it references the last hop pool
After you create the last hop pool that contains other devices, such as firewalls or routers, you can reference it from the SSL gateway using either the F5 Configuration utility or the command line.
Adding a last hop pool to an SSL gateway in the F5 Configuration utility
- In the navigation pane, click Proxies.
The Proxies screen opens. - In the Proxies list, select the SSL gateway to which you want to assign the last hop pool.
The Proxy Properties screen opens. - In the Last Hop Pool list, select the last hop pool that contains additional network devices.
- Click Apply.
Adding a last hop pool to an SSL gateway from the command line
Use the following syntax to reference a last hop pool from an SSL gateway:
bigpipe proxy <ip>:<port> lasthop pool <pool_name>
For example, if you want to assign the last hop pool named ssllasthop_pool to the SSL gateway 11.12.1.200:443, type the following command:
bigpipe proxy 11.12.1.200:443 lasthop pool
ssllasthop_pool