ssl

Guide to SSL

Valid for versions 118 through the latest version

Version:

92

114

118


Last modified: February 22, 2024

Overview

SSL/TLS (Secure Sockets Layer/Transport Layer Security) encrypts information between a visitor’s browser and a server. These protocols protect against electronic eavesdroppers. This also protects sensitive communications (for example, credit card numbers and login information).

Both of these protocols initiate a handshake, during which your server and the user’s computer agree on specific conditions. These conditions include a set of public and private keys. Both computers use these keys to encrypt and decrypt messages transmitted during communication.

Important:

cPanel & WHM supports Transport Layer Security (TLS) protocol version 1.2 and Transport Layer Security (TLS) protocol version 1.3:

  • cPanel & WHM only supports TLSv1.2 or later. The system enables TLSv1.2 by default.
  • Not all internet browsers or clients will support TLSv1.3.
Note:
  • You can set up SSL/TLS for your server and configure how SSL/TLS certificates run in cPanel’s SSL/TLS interface (cPanel » Home » Security » SSL/TLS).
  • WebPros International, LLC does not offer free signed or self-signed hostname certificates for cPanel DNSOnly® servers.

SSL certificates

An SSL certificate is an electronic document that digitally binds a public key to an identity. This helps secure the connection between a web browser and a website. An SSL certificate serves the following functions:

  • Encryption — Encodes data. This helps to ensure that if someone intercepts the transmission, they cannot understand it.
  • Identification verification — This ensures that you connect to the correct server.
Note:
  • SSL certificates review domain names literally. For example, SSL interprets www.example.com and example.com as two different domains.
  • The Common Name (CN) entry of an SSL certificate is cosmetic and does not affect the security of a certificate.
  • An SSL certificate’s CN does not need to be the main domain. The certificate covers all domains listed in the certificate’s Subject Alternative Name (SAN) field.

SSL key security

When you generate an SSL certificate, you can select the type of key that your SSL certificate uses. You can also select the type of key the system uses by default when generating SSL certificates:

  • In WHM, use either WHM’s SSL/TLS Configuration interface (WHM » Home » SSL/TLS » SSL/TLS Configuration) or the Default SSL/TLS Key Type setting in WHM’s Tweak Settings interface (WHM » Home » Server Configuration » Tweak Settings).
    Note:

    This setting only applies to cPanel users who do not set a default key type.

  • In cPanel, use the SSL/TLS interface (cPanel » Home » Security » SSL/TLS).
Important:

When selecting a new default key type, the system performs an AutoSSL run. This updates all installed AutoSSL-issued certificates to use the new key type.

Certificate types

When you work with SSL, you may encounter the following types of SSL certificates:

  • Single-domain — This certificate type secures a single domain or subdomain.
  • Multi-domain — This certificate type secures many domains with one certificate. It is also called a Unified Communications/Subject Alternate Name (UC/SAN) certificate.
    Note:

    You must reissue a multi-domain certificates each time you add a new hostname.

  • Self-signed — This certificate type does not verify the identity of the server and does not require a CA. These certificates are not secure. Visitors’ browsers will display a warning when they access the site. You can create a self-signed SSL certificate in WHM’s Generate an SSL Certificate and Signing Request interface (WHM » Home » SSL/TLS » Generate an SSL Certificate and Signing Request).
    Important:

    We strongly recommend using a valid signed certificate if your website handles sensitive data.

  • Shared SSL — This certificate type allows you to secure multiple domains with the same SSL certificate.
    Note:

    cPanel & WHM does not support this type of certificate.

  • Wildcard — Any type of certificate that contains a wildcard (*) domain. You can secure a domain’s subdomains with a single certificate if they share an IP address. For example, you can use a wildcard for the *.example.com domain to also secure the mail.example.com and www.example.com subdomains. However, this will not secure the to example.com domain.
    Note:
    • You can apply a wildcard certificate to services in WHM’s Manage Service SSL Certificates interface (WHM » Home » Service Configuration » Manage Service SSL Certificates).
    • The root user may install a wildcard certificate on a collection of subdomains for a single root domain on multiple IP addresses. If this configuration uses multiple IP addresses, a user on the server cannot own the root domain.

SNI support

Server Name Indication (SNI) support allows you to host multiple SSL certificates for different domains on the same IP address. At the beginning of the handshake process, SNI indicates the hostname to which the client connects. Users on shared servers that support SNI can install their own certificates without a dedicated IP address.

Note:

cPanel & WHM servers do not support SNI for the FTP service.

Certificate authorities

Your Certificate Authority (CA) is the trusted third-party entity that issues your SSL certificates.

CA bundle files

Generally, when you purchase an SSL certificate, the CA will provide you a CA bundle file. Some providers will send you the bundle file as a .cab or .zip file, others provide the files individually, and some will provide you a URL to download the bundle file.

A bundle file will contain the following details about the SSL certificate:

  • The CA that issued the certificate.
  • Any of the CA’s certificates, root or intermediate.
  • The chain of trust for the issuer.
    Note:

    A CA can vouch for other CAs, which results in a chain of trust. For a CA to sell certificates, another CA must vouch for them.

  • Certificate Revocation Lists (CRLs).
    Note:
    • The order of files in a bundle is important. If the CA sends individual files, we recommend that you ask them to pack them into a bundle file for you.
    • Bundle files for EV (Extended Validated) certificates may contain more files than certificates than OV (Organization Validated) and DV (Domain Validated) certificates.

Browsers include a list of trusted CAs, and they use the list to determine whether to trust a specific CA.

You can locate a domain’s CA bundle with either of the following UAPI functions:

You can install a CA bundle in either of the following interfaces:

You can also use the UAPI SSL::install_ssl function to install a CA bundle.

CAA records

A Certification Authority Authorization (CAA) record specifies which CAs may issue certificates for a domain. If no CAA records exist for a domain, all CAs can issue certificates for that domain. You can manage CAA records through WHM’s DNS Zone Manager interface (WHM » Home » DNS Functions » DNS Zone Manager) or through cPanel’s Zone Editor interface (cPanel » Home » Domains » Zone Editor).

If conflicting CAA records already exist, you must either remove the current CAA records or add one for the desired CAA. For example, a CAA record for Sectigo would resemble the following example, where example.com represents the domain name:

example.com.    86400   IN  CAA 0 issue "sectigo.com"

Similarly, a CAA record for Let’s Encrypt would resemble the following example, where example.com represents the domain name:

example.com.    86400   IN  CAA 0 issue "letsencrypt.com"

AutoSSL

AutoSSL secures multiple domains with the assumption that all of the domains resolve to the same virtual host. A cPanel-issued AutoSSL certificate expires after 90 days. However, AutoSSL attempts to automatically replace that certificate before it expires.

If your hosting provider has enabled notifications for AutoSSL, the system will send you an email when it generates or renews an AutoSSL certificate for a domain.

Important:
  • AutoSSL does not issue certificates for websites on suspended accounts. You must first activate the account in order for AutoSSL to issue a certificate.
  • AutoSSL adds service subdomains to the SSL certificate using a sort algorithm. For more information about service subdomains, read our Service and Proxy Subdomains documentation.

AutoSSL sorting

AutoSSL uses a sort algorithm to establish which domains to add to the certificate first. This sort order ensures that the system adds the domains that customers will most likely visit to the certificate first. For example, customers most likely intend to navigate to example.com versus www.subdomain.example.com.

The default sort algorithm prioritizes domains in the following order:

  1. Any fully-qualified domain names (FQDNs) that the virtual host’s current SSL certificate secures.

  2. The primary domain on the cPanel account and its ipv6, www. and mail. subdomains.

  3. Each addon domain and its www. and mail. subdomains. For example, the example cPanel user (whose primary domain is example.com), creates the foo.com addon domain. This addon domain, like all cPanel addon domains, exists on a separate virtual host with a subdomain. In this case, the system prioritizes foo.com over foo.example.com.

  4. Domains with fewer dots. For example, AutoSSL would prioritize foo.com over www.foo.com.

  5. The www, mail, whm, webmail, cpanel, autodiscover, and webdisk subdomains.

    Note:

    AutoSSL only adds the whm service subdomain to the SSL certificate for reseller accounts.

  6. Shorter domains.

AutoSSL provider

The Let’s Encrypt provider

Let’s Encrypt™ is the default AutoSSL provider for all new installations. The Let’s Encrypt provider is free and comes with your cPanel & WHM license. For more information, read our Let’s Encrypt Plugin documentation.

The Let’s Encrypt provider has the following limitations:

  • A rate limit of 300 certificate orders every three hours.

  • A weekly limit of 50 registered domains.

  • A maximum of 100 subdomains per certificate.

  • Limits the certificates it issues to a specific set of domains to five certificates per week. After this, Let’s Encrypt blocks any further certificates for that set of domains.

    Note:

    To work around this rate limit, create an alias to a domain in the virtual host list (website). Let’s Encrypt will interpret the virtual host as a new set of domains.

    For more information about Let’s Encrypt’s rate limits, read their rate limit documentation.

Domain and rate limits

The AutoSSL feature includes the following limitations and conditions:

  • A domain’s DNS zone contains CAA records. These CAA records restrict which CAs may issue certificates for that domain. If a CAA record for another provider already exists, you can remove that CAA record or add one for the desired CA. If no CAA records exist for a domain, all CAs can issue certificates for that domain.
    • Your server’s DNS zone can have more than one CAA record to receive certificates from more than one CA.
    • Certificates that Let’s Encrypt provides can secure a maximum of 100 domains every three hours.
      • Aliases count three times towards each certificate’s domains limit. When you create an alias domain, the system adds the following aliases to the original virtual host (where aliasdomain.com represents the alias domain):
        • aliasdomain.com
        • www.aliasdomain.com
        • mail.aliasdomain.com
  • AutoSSL only includes domains and subdomains that pass a DCV test. This DCV proves ownership of the domain.
  • AutoSSL includes corresponding www. domains for each domain and subdomain in the certificate, and those www. domains count towards any domain or rate limits. For example, for the example.com domain, AutoSSL automatically includes www.example.com in the certificate. If the corresponding www. domain does not pass a DCV test, AutoSSL will not attempt to secure that www. domain.
    • This method affects Let’s Encrypt’s limit of 50 certificates per week that may contain a domain or its subdomains.
  • The Let’s Encrypt provider will secure wildcard domains.
  • Each AutoSSL provider may wait for a specific amount of time to replace an AutoSSL-provided certificate before it expires. For example:
    • AutoSSL attempts to renew certificates that Let’s Encrypt provides when they expire within 29 days.
    • Due to rate limits, AutoSSL prioritizes new certificates over the renewal of existing certificates.
  • AutoSSL will not attempt to replace certificates that it did not issue. You can override this behavior if you enable the Allow AutoSSL to replace invalid or expiring non-AutoSSL certificates setting in WHM’s Manage AutoSSL interface (WHM » Home » SSL/TLS » Manage AutoSSL).
  • AutoSSL replaces certificates with overly-weak security settings. For example, an RSA modulus of 2048-bit or less.
  • A virtual host may contain more than the provider’s limit of domain names per certificate. AutoSSL uses a sort algorithm to determine the priority of domains to secure. For more information, read the AutoSSL sorting section above.
  • If you are using AutoSSL or SSL certificates purchased via your cPanel account to secure a linked mail node, your cPanel & WHM nodes must be able to manage its authoritative DNS server.

How to Manually Renew AutoSSL Certificates

AutoSSL provides and renews SSL certificates. AutoSSL attempts to renew certificates that Let’s Encrypt provides when they expire within 29 days. You can also manually renew certificates prior to the next automated run.

To manually renew a certificate for a single cPanel user:

  1. Log in to cPanel as the user.
  2. Navigate to cPanel’s SSL/TLS Status interface (cPanel » Security » SSL/TLS Status).
  3. Select Run AutoSSL.

To manually renew a certificate before revocation:

  1. Log in to cPanel as the user.
  2. Navigate to cPanel’s Manage SSL Sites interface (cPanel » Security » SSL/TLS » Manage SSL Sites).
  3. Delete the affected certificate.
  4. Navigate to cPanel’s SSL/TLS Status interface (cPanel » Security » SSL/TLS Status).
  5. Select Run AutoSSL.

How to update an expired SSL certificate without AutoSSL

Important:
  • You must possess a valid SSL certificate to complete the steps in this section.

  • You can purchase a valid SSL certificate from Sectigo or your preferred SSL certificate distributor.

To manually update an expired SSL certificate without using AutoSSL, perform the following steps:

  1. Log in to cPanel as the user.
  2. Navigate to cPanel’s Manage SSL Hosts interface (cPanel » Security » SSL/TLS » Manage SSL Sites).
  3. Select the domain with the expired certificate from the Domain menu.
  4. Located under the Install an SSL Website section, configure the following text boxes:
    • Certificate: (CRT).
    • Private Key (KEY).
    • Certificate Authority Bundle: (CABUNDLE).
      Note:
      In most cases, you do not need to supply the CA bundle because the server will fetch it from a public repository during installation.
  5. Click Install Certificate.

Additional Documentation