Managing Let’s Encrypt Settings

Plesk Let’s Encrypt extension behavior is governed by a number of settings, for example:

  • How far in advance of the expiration date Let’s Encrypt Certificates are renewed.
  • Whether the requests to the ACME server are recorded in the Plesk log or not.
  • The size of the RSA private key, and so on.

You can change these settings by specifying custom values in the [ext-letsencrypt] section of the panel.ini configuration file. For example, to have Let’s Encrypt renew certificates 45 days in advance and to change the size of the RSA private key to 4096 bits, add the following section to the panel.ini file:

[ext-letsencrypt]
renew-before-expiration = 45
rsa-key-size = 4096

Keeping websites secured with free SSL/TLS certificates from Let’s Encrypt

The Let’s Encrypt extension can automatically keep hosted websites secured with free, trusted SSL/TLS certificates from Let’s Encrypt. This feature can be turned on or off for every individual hosting plan. When you turn this feature on for a hosting plan, for every domain, subdomain, domain alias, or webmail that belongs to a subscription based on that hosting plan and that is:

  • Secured with a self-signed SSL/TLS certificate.
  • Secured with an expired SSL/TLS certificate.
  • Not secured with an SSL/TLS certificate.

The self-signed or expired SSL/TLS certificate is replaced with a Let’s Encrypt certificate.

You can also have the Let’s Encrypt extension replace SSL/TLS certificates that are not issued by one of the trusted certificate authorities in addition to self-signed and expired SSL/TLS certificates. To do so, set the check-domain-cert-authority setting to true. Read more about the check-domain-cert-authority setting in “Let’s Encrypt settings list”.

To keep websites secured with free SSL/TLS certificates from Let’s Encrypt:

  1. Go to Service Plans.
  2. On the “Hosting Plans” tab, either click Add a Plan to create a new plan or click the name of an existing plan to edit it.
  3. Go to the “Additional Services” tab.
  4. Under “SSL It!, select “Keep websites secured with free SSL Certificate”.
  5. Click OK.

Now all domains, subdomains, domain aliases, and webmail that belong to subscriptions based on this hosting plan will be automatically secured with Let’s Encrypt certificates. This change affects both existing and newly created subscriptions.

Alternatively, you can enable the “Keep websites secured with free SSL Certificate” option via the XML API by sending the following request:

<?xml version="1.0" encoding="UTF-8"?>
<packet>
  <service-plan>
    <add-plan-item>
      <filter>
        <name>Default Domain</name>
      </filter>
      <plan-item>
        <name>urn:ext:letsencrypt:plan-item-sdk:keep-secured</name>
      </plan-item>
    </add-plan-item>
  </service-plan>
</packet>

Let’s Encrypt settings list

All Let’s Encrypt extension settings that can be specified in panel.ini are described below:

Setting Type Description Default value
rsa-key-size integer The size of the RSA private key, in bits. 2048
user-agent string The User-Agent HTTP header. Plesk/$PRODUCT_VERSION
letsencrypt-url string The Let’s Encrypt website URL. https://letsencrypt.org/
terms-url string The Let’s Encrypt Policy and Legal Repository URL. https://letsencrypt.org/repository/

renew-before-expiration

(deprecated)

integer

The number of days before expiration when the certificate is scheduled for auto-renewal.

The same setting can be used for the SSL It! extension as well. In this case, the setting for SSL It! will have higher priority over the one for Let’s Encrypt.

Currently, the setting is still supported but will be deprecated from Let’s Encrypt in the future.

30
config-dir string The path where certificates for third-party integration are stored. $PRODUCT_ROOT/var/modules/letsencrypt/etc
verify string The path to the trusted CA Root Certificates bundle. $PRODUCT_ROOT/admin/plib/modules/letsencrypt/resources/ca/cacert.pem
disable-cleanup boolean Disable the cleanup of token files after a domain dispute is resolved. false
log-requests boolean Log requests to the ACME server in the Plesk log. false
secure-new-domain boolean Set the default state of the “Secure the domain with Let’s Encrypt” checkbox shown when creating a new subscription, domain, or subdomain. false
letsencrypt-docs-rate-limits-url string The URL to Let’s Encrypt documentation about “Rate Limits”. The link is displayed in the extension’s GUI error messages when Let’s Encrypt rate limits have been exceeded. https://letsencrypt.org/docs/rate-limits/
check-availability-delay integer *The wait time in seconds between attempts to check if a domain is accessible via HTTP. 5
check-availability-max-attempts integer *The maximum number of attempts to check if a domain is accessible via HTTP. 10
check-availability-timeout integer *Timeout in seconds for checking if a domain is accessible via HTTP. If within the time defined by check-availability-timeout, no response code is received, the domain is considered to be unavailable. 5
check-domain-cert-authority boolean When the “Keep websites secured with free SSL Certificate” option is enabled, if you set this setting to “false”, the Let’s Encrypt extension only replaces self-signed and expired SSL/TLS certificates. If you set it to “true”, the extension also replaces SSL/TLS certificates that are not trusted by any of the root certificates in the trusted CA Root Certificates bundle (see the verify setting). false
send-notifications-interval date interval Determines how often the Let’s Encrypt extension can send you notifications (for example, about a domain being secured with a Let’s Encrypt certificate or a Let’s Encrypt certificate being renewed). By default, the extension sends you one notification email per day. This email contains the information about all Let’s Encrypt-related events that occurred since the previous email was sent. To receive a separate email notification about each event right after it occurs, set this setting to now. 1 day
use-common-challenge-dir   Sets usage of the common challenge directory: /var/www/vhosts/default/.well-known/acme-challenge. true

fallback-registration-email

(deprecated)

 

Used as a registration email address when SSL/TLS certificates are renewed. Used only when an email address for domain registration was not saved in ModulesSettings and an email address of a domain owner was not registered.

Currently, Let’s Encrypt requires an email to issue a certificate. The setting is still supported at the moment but will be deprecated in the future.

The Administrator email
acme-directory-url   Directory Resource URI. https://acme-v02.api.letsencrypt.org/directory
acme-protocol-version   The ACME protocol version. acme-v02

Note

*The Let’s Encrypt extension checks if a domain is accessible via HTTP each time a new domain is secured because domains can be unavailable for some time after they are created in Plesk. All settings starting with check-availability are applied during this check.