For the complete documentation index, see llms.txt. This page is also available as Markdown.

TLS Offloading

Configure TLS offloading for CARTO Self-Hosted

TLS offloading (or TLS termination) means SSL/TLS is terminated at your external Load Balancer or Ingress Controller, and traffic is then forwarded internally to the CARTO Router over HTTP. This is the recommended SSL/TLS strategy for standard production deployments.

Key benefit: The entire certificate lifecycle is managed automatically at the load balancer or ingress level, eliminating the operational burden of certificate rotation.

When to use TLS offloading

  • Standard production deployments.

  • You want automated certificate provisioning and renewal, with no manual intervention.

  • You integrate with a WAF or DDoS protection at the edge.

  • You want simplified operations with no certificate expiration concerns.

For stricter requirements (compliance mandating encryption throughout the infrastructure, zero-trust architectures, or client certificate authentication), use End-to-End TLS instead.

Certificates and private keys must not be encrypted or protected with a passphrase. CARTO Self-Hosted does not support encrypted certificates.

Configuration

Kots

The configuration path depends on your deployment type and access mode.

Standard Orchestrated — Default Access mode (GKE / EKS)

In Default Access mode, Kots automatically deploys a cloud-managed load balancer and handles TLS for you. No explicit TLS Termination field is shown: TLS offloading is built in.

Cloud
What Kots deploys
TLS mechanism

GKE

GKE L7 Global External Load Balancer (Gateway API)

Google-managed certificate (enter the cert name in Admin Console)

EKS

AWS Network Load Balancer with ALB annotations

ACM certificate (enter the ACM cert ARN in Admin Console)

AKS

❌ Not supported

AKS requires Custom access mode

Standard Orchestrated — Custom Access mode (all K8s distros, including AKS)

In Custom Access mode you bring your own load balancer or ingress controller. Configure TLS offloading in Admin Console → Config → Access to CARTO:

  1. Set Self-Hosted access modeCustom

  2. Set TLS Termination"Terminate TLS in a higher layer and connect to CARTO over HTTP"

  3. Click Save configDeploy

CARTO will accept plain HTTP from your LB on port 80. Point your load balancer or ingress controller to the CARTO Router service on port 80.

Single Virtual Machine (Embedded Cluster)

  1. In Admin Console → Config → Access to CARTO, locate TLS Termination

  2. Select "Terminate TLS in a higher layer and connect to CARTO over HTTP"

  3. Click Save configDeploy

Place a reverse proxy (nginx, Caddy, etc.) or cloud load balancer in front of the Single VM to handle TLS, forwarding HTTP traffic to the VM on port 80.

For load balancer architecture recommendations, see Load balancing best practices.

Last updated

Was this helpful?