This topic describes how to add an HTTPS listener to a Classic Load Balancer (CLB) instance. HTTPS is intended for applications that require encrypted data transmission. You can add an HTTPS listener to forward HTTPS requests.

Prerequisites

A CLB instance is created. For more information, see Create and manage a CLB instance.

Step 1: Configure an HTTPS listener

  1. Log on to the CLB console.
  2. In the top navigation bar, select the region where the CLB instance is deployed.
  3. Use one of the following methods to open the listener configuration wizard:
    • On the Instances page, find the CLB instance that you want to manage and click Configure Listener in the Actions column.
    • On the Instances page, click the ID of the CLB instance that you want to manage. On the Listener tab, click Add Listener.
  4. Set the following parameters and click Next.
    Parameter Description
    Select Listener Protocol Select the protocol of the listener.

    HTTPS is selected in this example.

    Backend Protocol In this example, an HTTPS listener is required. Therefore, Backend Protocol is set to HTTPS.
    Listening Port Specify a listening port to receive requests and forward them to backend servers. Valid values: 1 to 65535. Port 443 is used for HTTPS requests.
    Listener Name Specify a name for the listener. The name must be 1 to 256 characters in length and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (_).
    Advanced Click Modify to configure advanced settings.
    Scheduling Algorithm Select a scheduling algorithm.
    • Weighted Round-Robin (WRR): Backend servers that have higher weights receive more requests than backend servers that have lower weights.
    • Round-Robin (RR): Requests are distributed to backend servers in sequence.
    Enable Session Persistence

    Specify whether to enable session persistence.

    After session persistence is enabled, CLB forwards all requests from a client to the same backend server.

    Cookie Persistence:
    • Insert cookie: If you select this option, you need to only specify the timeout period of the cookie.

      CLB inserts a cookie (SERVERID) into the first HTTP or HTTPS response that is sent to a client. The next request from the client carries this cookie, and the listener will forward this request to the recorded backend server.

      Persistent Timeout: If you select Insert cookie, you must specify the timeout period for session persistence. Valid values: 1 to 86400. Unit: seconds.

    • Rewrite cookie: If you select this option, you can specify the cookie that you want to insert into an HTTP or HTTPS response. In this case, you must specify the timeout period and lifetime of a cookie on a backend server.

      After you specify a cookie, CLB overwrites the original cookie with the specified cookie. The next time CLB receives a client request that carries the specified cookie, the listener distributes the request to the recorded backend server.

      Cookie Name: If you select Rewrite cookie, you must specify a name for the cookie. The name can contain letters, digits, underscores (_), and hyphens (-).

    Enable HTTP/2 Select whether to enable HTTP/2 support for the CLB instance.
    Enable Access Control Specify whether to enable access control.

    Select an access control method after you enable access control. Then, select a network access control list (ACL) as the whitelist or blacklist of the listener.

    Note IPv6 instances can be associated only with IPv6 network ACLs, and IPv4 instances can be associated only with IPv4 network ACLs. For more information, see Create an access control list.
    Enable Peak Bandwidth Limit

    Specify whether to set the maximum bandwidth of the listener.

    If a pay-by-bandwidth CLB instance is used, you can set the maximum bandwidth of each listener to limit the amount of network traffic forwarded by listeners. The sum of the maximum bandwidth of all listeners that are added to a CLB instance cannot exceed the maximum bandwidth of the CLB instance. By default, this feature is disabled and all listeners share the bandwidth of the CLB instance.

    Note If a pay-by-data-transfer CLB instance is used, the bandwidth of its listeners is not limited by default.
    Idle Timeout Specify the timeout period of idle connections. Unit: seconds. Valid values: 1 to 60.

    If no request is received within the specified timeout period, CLB closes the connection. When another request is received, CLB establishes a new connection.

    Request Timeout Specify the request timeout period. Unit: seconds. Valid values: 1 to 180.

    If no response is received from a backend server within the specified timeout period, CLB returns the HTTP 504 error code to the client.

    Enable Gzip Compression If you enable Gzip compression, files of specific types are compressed. If you disable Gzip compression, no file is compressed.

    File types that support Gzip compression: text/xml, text/plain, text/css, application/javascript, application/x-javascript, application/rss+xml, application/atom+xml, application/xml, and application/json.

    Add HTTP Header Fields Supported headers:
    • X-Forwarded-For: Add the header to retrieve client IP addresses.
    • SLB-ID: Add the header to retrieve the ID of the CLB instance.
    • SLB-IP: Add the header to retrieve the IP address of the CLB instance.
    • X-Forwarded-Proto: Add the header to retrieve the listening protocol.
    • X-Forwarded-Port: Add the header to retrieve the listening port.
    • X-Forwarded-Client-srcport: Add the header to retrieve client ports.
    Obtain Client Source IP Address Specify whether to retrieve client IP addresses. By default, this feature is enabled.
    Automatically Enable Listener After Creation Specify whether to immediately enable the listener after it is created. By default, listeners are enabled after they are created.
    WAF Protection Specify whether to enable Web Application Firewall (WAF) protection for the listener.

Step 2: Configure an SSL certificate

When you add an HTTPS listener, you must upload a server certificate or certificate authority (CA) certificate and select a TLS security policy, as shown in the following table.

Certificate Description Required for one-way authentication Required for mutual authentication
Server certificate A server certificate is used to authenticate the identity of a server.

A browser authenticates the identity of a server by checking whether the certificate sent by the server is issued by a trusted CA.

Yes

You must upload the server certificate to the certificate management system of CLB.

Yes

You must upload the server certificate to the certificate management system of CLB.

Client certificate A client certificate is used to authenticate the identity of a client.

A server authenticates the identity of a client by verifying the certificate sent by the client. You can sign a client certificate with a self-signed CA certificate.

No Yes

You must install the client certificate on the client.

CA certificate A CA certificate is used by a server to verify the signature of a client certificate. If the signature is invalid, the connection request is denied. No Yes

You must upload the CA certificate to the certificate management system of CLB.

TLS security policy TLS security policies are supported only by high-performance CLB instances.

A TLS security policy contains TLS protocol versions and cipher suites that are available for HTTPS. For more information, see TLS security policies.

Yes Yes
Before you upload a certificate, take note of the following rules:
  • CLB supports the following public key algorithms: RSA 1024, RSA 2048, RSA 4096, ECDSA P-256, ECDSA P-384, and ECDSA P-521.
  • The certificate that you want to upload must be in the PEM format.
  • After you upload a certificate to CLB, CLB can manage the certificate. You do not need to associate the certificate with backend servers.
  • It may take a few minutes to upload, load, and verify the certificate. Therefore, an HTTPS listener is not available immediately after it is created. It requires about 1 to 3 minutes to enable an HTTPS listener.
  • The ECDHE cipher suite used by HTTPS listeners supports forward secrecy. It does not support the security enhancement parameters that are required by the DHE cipher suite. Therefore, you cannot upload certificates (PEM files) that contain the BEGIN DH PARAMETERS field. For more information, see Certificate requirements.
  • By default, the timeout period of session tickets for HTTPS listeners is 300 seconds.
  • The actual amount of data transfer on an HTTPS listener is larger than the billed amount because a portion of data is used for handshaking.
  • Therefore, the amount of data transfer greatly increases when a large number of connections are established.
  1. On the SSL Certificates wizard page, select the server certificate that you uploaded. You can also click Create Server Certificate to upload a server certificate.
  2. To enable mutual authentication or configure a TLS security policy, click Modify next to Advanced.
  3. Enable mutual authentication and select an uploaded CA certificate. You can also upload a CA certificate.
  4. For more information about TLS security policies, see TLS security policies.

Step 3: Add backend servers

After the listener is created, you must add backend servers to process client requests. You can add backend servers to the default server group, or create vServer groups or primary/secondary server groups and then add servers to the server groups. For more information, see Backend server overview.

In this example, backend servers are added to the default server group.

  1. On the Backend Servers wizard page, select Default Server Group. Then, click Add More.
  2. In the My Servers panel, select the Elastic Compute Service (ECS) instances that you want to add as backend servers and click Next.
  3. Set weights for the selected ECS instances in the Weight column.
    Note
    • An ECS instance with a higher weight receives more requests. The default weight is 100. You can click Reset to set the weight to the default value.
    • If you set the weight of a server to 0, the server does not receive requests.
  4. Click Add. On the Default Server Group tab, specify the ports that you want to open on the backend servers to receive requests. Valid values: 1 to 65535. Click Next.

    You can specify the same port on different backend servers that are added to a CLB instance.

Step 4: Configure health checks

CLB performs health checks to check the availability of the ECS instances that serve as backend servers. The health check feature improves overall service availability and reduces the impact of backend server failures.

Step 5: Submit the configurations

  1. On the Confirm wizard page, check the configurations. You can click Modify to modify the configurations.
  2. After you confirm the configurations, click Submit.
  3. When Configuration Successful appears, click OK.

    After you configure the listener, you can view the listener on the Listener tab.