All Products
Search
Document Center

Edge Security Acceleration:Configure client certificates

Last Updated:Nov 26, 2025

By configuring client certificates, you can enable Transport Layer Security (TLS) mutual authentication (mTLS) on the link between clients and Edge Security Acceleration (ESA) nodes. This enhances client access security.

Client certificate issuance

You can use the Certificate Authority (CA) provided by ESA to create client certificates. You can then deploy the generated client certificates on your mobile applications. ESA generates a unique CA for each account. By default, nodes trust all client certificates issued by ESA.

Create a certificate

  1. In the ESA console, choose Websites. In the Website column, click the target site.

  2. In the navigation pane on the left, choose SSL/TLS > Client Certificates, and then click Create Certificate.

  3. As needed, select a CSR Generation, Private Key Type, and Certificate Validity.

    Note

    The default certificate validity period is one year.

  4. Click OK.

    Important

    In the certificate preview dialog box, click "Copy Certificate" and "Copy Private Key" to copy the content. Then, paste the content into your client. The certificate and private key cannot be retrieved after you close this dialog box.

Bind a domain name

By binding a client certificate to a specific domain name, you can implement mutual authentication (mTLS). This ensures that only users with valid client certificates can access specific services or resources.

  1. In the ESA console, choose Websites. In the Website column, click the target site.

  2. In the navigation pane on the left, click SSL/TLS > Client Certificates.

  3. In the domain name section, click Configure. In the domain name box, enter the domain names.

    Note
    • You can enter up to 50 domain names at a time.

    • The domain names must match the site.

  4. Click OK.

Revoke a certificate

If you no longer need a certificate, revoke it as follows:

  1. In the ESA console, choose Websites. In the Website column, click the target site.

  2. In the navigation pane on the left, click SSL/TLS > Client Certificates.

  3. Select Client Certificates > Actions, and click Revoke.

  4. In the dialog box that appears, select the I confirm that the certificate is no longer required checkbox. Then, click Yes.

Custom certificate issuance

In addition to client certificates issued by the ESA CA, you can also use certificates that you issue from your own private channels. If you use a custom certificate, you must configure its root certificate.

Note

Custom certificate issuance is currently supported only through OpenAPI. You can upload a maximum of five CA certificates for each plan.

Procedure

  1. Call the Upload client mTLS CA certificate API operation to upload the CA root certificate. Record the certificate ID from the API response.

  2. Call the Bind domain names API operation to bind a list of hosts to the CA certificate. Only the bound hosts can use the corresponding CA certificate for mTLS authentication.

  3. The following table lists other OpenAPI operations for the custom mTLS certificate feature.

    API operation name

    Description

    UploadClientCaCertificate

    Uploads a custom-issued CA certificate.

    ListClientCaCertificates

    Lists all uploaded custom-issued CA certificates.

    DeleteClientCaCertificate

    Deletes a custom-issued CA certificate.

    GetClientCaCertificate

    Queries the details of a specific custom-issued CA certificate.

    SetClientCertificateHostnames

    Binds domain names to a custom-issued CA certificate.

    GetClientCertificateHostnames

    Queries the domain name binding status of a custom-issued CA certificate.

Block failed authentication requests

Configure Web Application Firewall (WAF) rules to block requests that fail client certificate authentication.

Procedure

  1. In the ESA console, choose Websites. In the Website column, click the target site.

  2. In the navigation pane on the left, choose SSL/TLS > Client Certificates > Create mTLS Rule to go to the custom rule configuration page.

    image

  3. Configure a custom WAF rule.

    • Set Client Certificate Verified to image.png.

    • For Hostname, enter the domain names for which you want to block requests.

      Important

      You must configure the hostname condition. Otherwise, all requests that fail client certificate authentication are blocked.

    image

  4. Set Action to Block, or another action as needed.

    image

  5. Click OK to add the rule.

    After the rule is added, any request to a domain name in the rule that fails client certificate authentication is blocked and returns a 403 status code.

Verification

  • If a client makes a request without a certificate, WAF blocks the request and returns a 403 status code.

    image

  • If a client makes a request with a client certificate issued by ESA, the request is processed normally.

    curl -v "https://example.com" --cert ./example.crt --key ./example.key 
    * Trying 10.10.10.10...
    * TCP_NODELAY set
    * Connected to 1.zhouwei.queniuwk.cn (10.10.10.10) port 443 (#0)
    * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
    * successfully set certificate verify locations:
    * CAfile: /etc/pki/tls/certs/ca-bundle.crt
    CApath: none
    * TLSv1.2 (OUT), TLS Unknown, Certificate Status (22):
    * TLSv1.2 (OUT), TLS handshake, Client hello (1):
    * TLSv1.2 (IN), TLS handshake, Server hello (2):
    * NPN, negotiated HTTP1.1
    * TLSv1.2 (IN), TLS handshake, Certificate (11):
    * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
    * TLSv1.2 (IN), TLS handshake, Request CERT (13):
    * TLSv1.2 (IN), TLS handshake, Server finished (14):
    * TLSv1.2 (OUT), TLS handshake, Certificate (11):
    * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
    * TLSv1.2 (OUT), TLS handshake, CERT verify (15):
    * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
    * TLSv1.2 (OUT), TLS handshake, Next protocol (67):
    * TLSv1.2 (OUT), TLS handshake, Finished (20):
    * TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
    * TLSv1.2 (IN), TLS handshake, Finished (20):
    * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
    * Server certificate:
    * subject: CN=1.zhouwei.queniuwk.cn
    * start date: Jul 31 00:00:00 2024 GMT
    * expire date: Jul 31 23:59:59 2025 GMT
    * subjectAltName: host "1.zhouwei.queniuwk.cn" matched cert's "1.zhouwei.queniuwk.cn"
    * issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=Encryption Everywhere DV TLS CA - G2
    * SSL certificate verify ok.
    > GET / HTTP/1.1
    > Host: 1.zhouwei.queniuwk.cn
    > User-Agent: curl/7.74.0
    > Accept: */*