Default TLS Certificate

By default, all domain names (ending in scalingo.io) are protected by a wildcard certificate issued by Gandi. This certificate is managed by the platform. It automatically allows any application hosted on Scalingo to be reached via both http and https as soon as they are created.

When adding a custom domain name, Scalingo automatically leverage Let’s Encrypt to generate a dedicated TLS certificate.

Once issued, a Let’s Encrypt certificate is given a 90 days validity period. The platform ensures all certificates are renewed when necessary. This process is fully automated and integrated, so you don’t have to worry about it.

The platform also follows Let’s Encrypt best practices by starting the renewal process when a certificate is 60 days old. If the renewal process fails, the platform automatically retries later. The delay between each attempt is determined using an exponential backoff algorithm. This algorithm is capped to a minimum of one attempt per day.

Certificate Statuses

At Scalingo, a Let’s Encrypt certificate can have one of these statuses:

Pending DNS
When you link a domain name to your application, we wait for it to target our infrastructure before generating the certificate. We check the DNS record automatically every 60 seconds.
Creating
Our infrastructure is exchanging messages with Let’s Encrypt servers to generate your certificate.
In use
Your website is available using HTTPS connections thanks to a Let’s Encrypt certificate.
Not used
Your website is available using HTTPS connections thanks to a custom certificate.
Action required
To achieve the creation of your Let’s Encrypt certificate for a wildcard domain, please follow these additional instructions.

Technical Considerations

  • The platform is limited by official Let’s Encrypt quotas to a maximum of 50 generated certificates per apex domain per week. Generating a certificate for www.example.com, app.example.com, and example.com within the same week would count as 3.

Using a Wildcard Domain

When the platform generates a Let’s Encrypt certificate for a wildcard domain, an additional TXT DNS record must be added to the corresponding zone file. This TXT RR allows the platform to verify you are indeed owning the domain name.

This mandatory action is highlighted by the “Action required” status shown on the dashboard. Clicking on the question mark gives you the instructions and the value of the TXT record to create.

Here is an example of such a TXT RR:

NAME                         TTL   TYPE    VALUE
_acme-challenge.example.com  120   TXT     5TWm4V7xoUpGax-58FrPO49

This TXT record must be updated every three months for the platform to be able to renew the certificate.

This renewal process can be done manually, or it can be automated when working with several registrars. We currently support Azure DNS, Cloudflare, dnsimple, Gandi, Google Cloud DNS, GoDaddy, OVH Cloud, and AWS Route 53.

To allow us do the work for you, you’ll have to create a few environment variables.

Azure DNS

The following environment variables must be created and properly filled:

Environment Variable Description
DNS_PROVIDER Must be set to azure
DNS_AZURE_CLIENT_ID Your Azure client ID
DNS_AZURE_CLIENT_SECRET Your Azure client secret
DNS_AZURE_SUBSCRIPTION_ID Your Azure subscription ID
DNS_AZURE_TENANT_ID Your Azure tenant ID
DNS_AZURE_RESOURCE_GROUP Your Azure resource group

For more information about Azure DNS, see their documentation.

Cloudflare

The following environment variables must be created and properly filled:

Environment Variable Description
DNS_PROVIDER Must be set to cloudflare
DNS_CLOUDFLARE_EMAIL Your Cloudlflare e-mail address
DNS_CLOUDFLARE_API_KEY Your Cloudlfare global API key

For more information about Cloudflare, see their documentation.

dnsimple

The following environment variables must be created and properly filled:

Environment Variable Description
DNS_PROVIDER Must be set to dnsimple
DNS_DNSIMPLE_OAUTH_TOKEN Your dnsimple OAuth token

For more information about dnsimple, see theirdocumentation.

Gandi

Gandi

The following environment variables must be created and properly filled:

Environment Variable Description
DNS_PROVIDER Must be set to gandi
DNS_GANDI_API_KEY Your Gandi API key

For more information about Gandi, see their documentation.

Gandiv5

The following environment variables must be created and properly filled:

Environment Variable Description
DNS_PROVIDER Must be set to gandiv5
DNS_GANDIV5_API_KEY Your Gandi v5 API key

For more information about Gandi v5, see their documentation.

Google Cloud DNS

The following environment variables must be created and properly filled:

Environment Variable Description
DNS_PROVIDER Must be set to gcloud
DNS_GCLOUD_JSON_KEYS Your Service account file, encoded in base64

The Service account file must be encoded in base64:

base64 --wrap=0 service_account_file.json

For more information about Google Cloud DNS, see their documentation.

GoDaddy

The following environment variables must be created and properly filled:

Environment Variable Description
DNS_PROVIDER Must be set to godaddy
DNS_GODADDY_API_KEY Your GoDaddy API key
DNS_GODADDY_API_SECRET Your GoDaddy API secret

For more information about GoDaddy, see their documentation.

OVH Cloud

The following environment variables must be created and properly filled:

Environment Variable Description
DNS_PROVIDER Must be set to ovh
DNS_OVH_ENDPOINT Either ovh-eu or ovh-ca
DNS_OVH_APPLICATION_KEY Your OVH application key
DNS_OVH_APPLICATION_SECRET Your OVH application secret
DNS_OVH_CONSUMER_KEY Your OVH consumer key

For more information about OVH Cloud, see their [documentation][ovh-doc].

AWS Route 53

The following environment variables must be created and properly filled:

Environment Variable Description
DNS_PROVIDER Must be set to route53
DNS_AWS_ACCESS_KEY_ID Your AWS access key ID
DNS_AWS_SECRET_ACCESS_KEY Your AWS secret access key
DNS_AWS_HOSTED_ZONE_ID Your AWS hosted zone ID

For more information about AWS Route 53, see their documentation.

Disabling Let’s Encrypt

Our Let’s Encrypt features can be completely disabled.

Using the Command Line

  1. Make sure you have correctly setup the Scalingo command line tool
  2. Issue the following command to add the domain name to your app, and specify you don’t want any of the Let’s Encrypt features:
    scalingo --app my-app domains-add --no-letsencrypt example.com
    

Using the Terraform Provider

  1. Make sure the letsencrypt_enabled attribute of the corresponding scalingo_domainresource block is set to false:
    resource "scalingo_domain" "example.com" {
      common_name = "example.com"
      app = "${scalingo_app.my-app.id}"
      letsencrypt_enabled = false
    }
    

Suggest edits

Default TLS Certificate

©2026 Scalingo