Certificati SSL

Gestione dei Certificati SSL

ZoneHero supporta TLS per connessioni sicure ai tuoi bilanciatori del carico. Questa guida spiega come configurare e gestire i certificati SSL per l’uso con ZoneHero.

Requisiti per i Certificati

Per supportare TLS, devi inserire i certificati in un secret di AWS Secrets Manager con un percorso che inizia con /hlb/ e replicare il secret in ogni regione in cui il certificato sarà utilizzato.

Il secret deve contenere 2 coppie chiave/valore:

  • fullchain.pem: Catena di certificati
  • privkey.pem: Chiave privata

Raccomandiamo vivamente l’utilizzo di certificati ECC per migliori prestazioni e risparmi sui costi.

Gestione dei Certificati

I certificati possono essere gestiti e ruotati nel modo che ritieni più opportuno, sebbene raccomandiamo vivamente di automatizzare il processo. ZoneHero controlla le nuove versioni dei certificati ogni ora, ma una sostituzione più rapida può essere effettuata creando un secret con un nuovo nome e aggiornando il bilanciatore del carico (questo non richiede un riavvio).

Gestione Automatizzata dei Certificati con Let’s Encrypt

Esiste un modo semplice per gestire i certificati ECC con generazione automatica da Let’s Encrypt utilizzando una funzione Lambda:

  1. Scarica l’ultima versione dello zip da certbot-lambda releases e caricalo in un bucket S3 di tua proprietà.

  2. Utilizza il modulo Terraform di esempio per distribuirlo:

module "certbot" {
  source = "git::https://gitlab.guerraz.net/HLB/hlb-quick-start.git//examples/certbot"

  # Required parameters (if you want to override defaults)
  aws_region             = "eu-west-1"
  certbot_emails         = "your-email@example.com"
  certbot_domains        = "yourdomain.example.com"
  secret_replica_regions = ["eu-west-1", "eu-central-1", "us-east-1"]

  # S3 bucket containing the Lambda zip
  certbot_source_bucket = "your-lambda-bucket"
  certbot_source_key    = "certbot-lambda.zip"

  # Optional parameters with their default values
  lambda_memory         = 256
  lambda_timeout        = 600
  rotation_schedule     = "30"
}

Questo automaticamente:

  • Crea e rinnova i certificati Let’s Encrypt
  • Li memorizza in AWS Secrets Manager con il formato richiesto
  • Li replica in tutte le regioni specificate

Limitazioni

Si prega di notare le seguenti limitazioni:

  • ZoneHero attualmente non supporta l’emissione diretta di certificati TLS (anche se prevediamo di aggiungere questa funzionalità in futuro)
  • ZoneHero non supporta l’utilizzo di certificati emessi da AWS ACM

Invece, devi utilizzare certificati memorizzati in AWS Secrets Manager come descritto sopra.