If you do not have your own SSL certificate, you can activate the free Let’s Encrypt certificate in your account. Let’s Encrypt certificates can only be issued for resources with a custom domain name.Documentation Index
Fetch the complete documentation index at: https://gcore.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Attach a Let’s Encrypt certificate
During resource creation
On the Set up initial configuration step, navigate to the SSL section, and turn on the toggle for Enable HTTPS. Then, select Get free Let’s Encrypt certificate.
- disable the HTTPS option,
- select another certificate,
- interrupt the issuance of the current certificate.
For created resource
- Go to CDN and select the CDN resource you want to configure.

- In the navigation panel, under the General section, click SSL.

- In the SSL section, turn on the toggle for Enable HTTPS, select Get free Let’s Encrypt certificate, and click on Save changes.

Issuance with the DNS-01 challenge
We use the HTTP-01 challenge by default to validate your ownership of the domain to which you want to issue the Let’s Encrypt certificate. But sometimes, this challenge type isn’t suitable. For example, if you use multi-CDNs with a balancer, CNAME may answer with the non-Gcore value, and the Let’s Encrypt certificate issuance can fail. To avoid this problem and make the process more flexible, we have added support for the DNS-01 challenge. You can read more about the principles of its operation in the official Let’s Encrypt documentation. Before you begin, make sure you have the following:- A CDN resource with the custom domain(s) already configured.
- Gcore Managed DNS active on your account.
- Access to the authoritative DNS provider hosting your domain zone.
- A Gcore API token with permission to modify the CDN resource.
Step 1. Activate Gcore Managed DNS
Activate Gcore Managed DNS in your personal account.Step 2. Delegate your domain to Gcore nameservers
You have two options depending on how much control you want to transfer to Gcore:- Full zone delegation: delegate your entire DNS zone to Gcore nameservers (ns1.gcorelabs.net and ns2.gcdn.services). Choose this if you already manage your zone in Gcore DNS or don’t mind moving it.
- Partial delegation: delegate only the
_acme-challenge.*subdomains to Gcore. Choose this if you can’t or don’t want to move your full DNS zone — this is the minimum-privilege approach and is fully compliant with RFC 8555 §8.4.
- In your DNS provider, add NS records pointing
_acme-challenge.<hostname>to Gcore’s nameservers:
| Name | TTL | Type | Value |
|---|---|---|---|
_acme-challenge.www.example.com | 300 | NS | ns1.gcorelabs.net. |
_acme-challenge.www.example.com | 300 | NS | ns2.gcdn.services. |
NoteIf a hostname (such as
www.example.com) is itself a separately delegated zone with its own nameservers, create the NS records inside that child zone — not in the apex zone.- Verify the delegation. Don’t rely on a recursive resolver, as it can return cached results. Query the authoritative nameservers of the parent zone directly:
status: NOERROR with both ns1.gcorelabs.net. and ns2.gcdn.services. in the ANSWER or AUTHORITY section. If you get NXDOMAIN or NOERROR with no NS records, go back and confirm the records were saved correctly in your DNS provider.
To trace the full delegation chain from the root:
- Check your CAA records. CAA records are inherited from the parent zone, so if your domain publishes any, they must permit Let’s Encrypt:
letsencrypt.org:
Step 3. Enable the DNS-01 challenge
Enable theuse_dns01_le_challenge option on your CDN resource via the API. Replace {resource_id} with your CDN resource ID and <api-key> with your Gcore API token:
_acme-challenge.* subdomains — no production traffic needs to flow through Gcore.
Troubleshoot the DNS-01 challenge
| Symptom | Cause and fix |
|---|---|
SERVFAIL with EDE 22 “delegation” on _acme-challenge.* | Gcore isn’t yet authoritative for that subdomain zone. Re-check Step 2. |
REFUSED from ns1.gcorelabs.net or ns2.gcdn.services | The _acme-challenge.<hostname> zone isn’t provisioned in Gcore DNS. Wait a few minutes and retry. |
| Issuance still uses HTTP-01 after the API call | The option may not have saved. Run the GET call from Step 3 to confirm the value. |
| Cloudflare proxying the zone | Set CNAME Flattening to Flatten CNAME at root, not Flatten all CNAMEs. |
| DNSSEC enabled at the parent zone | The delegation point must not carry a DS record unless Gcore also signs the child zone. Remove it or contact your DNS provider. |
Notes regarding issuing
- The time it takes to issue a certificate varies depending on when the CDN resource was created. If you are requesting a certificate for a recently created resource, it may take up to 30 minutes as the configuration has not yet been fully propagated to all CDN servers. However, if the resource’s configuration has already been fully propagated, issuing a Let’s Encrypt certificate will only take a few minutes.
- Let’s Encrypt requires placing a temporary file at the URL
http://<CNAME>/.well-known/acme-challenge/<TOKEN>and making HTTP requests to this file. Before adding a Let’s Encrypt certificate, make sure that your CDN resource does not have any rules that block these requests. Examples of such rules include:- A rule with /*. This rule will catch any strings and override the hidden rule that is necessary to obtain a certificate.
- A rule with ((?!(jpeg|gif|png|pdf|jpg|css|js|woff|woff2|ttf)).)*$. This rule will catch all non-static files.
- You can only issue a Let’s Encrypt certificate for an existing resource. If the CNAME of the resource in the DNS settings is not pointing to the value specified in the setup guide, or the source is not available, the certificate will not be issued.
- Only one Let’s Encrypt certificate can be issued per resource. If you need to add or remove an additional personal domain for a resource, we will reissue the certificate after making the changes. You will receive a warning that the current certificate will only be valid for 30 minutes and will be automatically replaced.

Revoke a Let’s Encrypt certificate
To revoke a certificate, go to the Resource Settings and click Revoke Let’s Encrypt certificate in the SSL section.
Restrictions and features of the option
- A wildcard domain cannot be issued a certificate
- If a Let’s Encrypt certificate is issued, the certificate selector will not be displayed in the resource settings. Personal certificates will become available for selection after revoking Let’s Encrypt
- A Let’s Encrypt certificate will not be displayed on the SSL Certificates page

- A certificate is only visible in the settings of the resource for which it is issued.
- Issuing and revoking a Let’s Encrypt certificate does not require saving the Resource Settings.
- If you are using DNS Cloudflare, be sure not to set the CNAME Flattening option to Flatten all CNAMEs. This will cause Cloudflare to return an A-record instead of a CNAME, which will prevent the issuance of a Let’s Encrypt certificate. To successfully issue a Let’s Encrypt certificate, set the CNAME Flattening option to Flatten CNAME at root.

Let’s Encrypt issuing statuses
Pre-validation failed
If your CDN resource domain cannot be ACME challenged, you will see a message informing you of the issue and the release button will be inactive. To avoid this problem, follow our dedicated guide.
Processing
After selecting the Get free Let’s Encrypt certificate option, if your CDN resource configurations are correct, the Processing status will be displayed in your customer portal while the certificate is being issued.

Success
If the challenge verification is successful, the certificate will be issued, and you will see the status Success. The certificate will also be renewed automatically after three months.
Failed
After five unsuccessful attempts, the certificate status will be Failed. You can fix the error(s) causing failure using our dedicated guide. Click Retry issue to attempt issuance again.
