Amazon CloudFront è una rete di distribuzione di contenuti sicura e programmabile. Tra le caratteristiche di sicurezza di CloudFront ricordiamo la crittografia a livello di campo e la protezione contro gli attacchi DDoS a livello di network e di applicazione.

Richiedere un Certificato SSL Personalizzato

La configurazione della distribuzione di Cloudfront comprende l’applicazione di un certificato SSL personalizzato. Dato che questa operazione può richiedere da pochi minuti a diverse ore, consigliamo di richiedere il certificato SSL personalizzato prima di avviare la creazione di una nuova distribuzione.

Se non avete ancora un account AWS, potete crearlo qui. Una volta effettuato l’accesso al vostro account AWS, cercate “certificate manager” utilizzando la casella di ricerca nella barra dei menu e fate clic su Certificate Manager alla voce Services.

Cliccare su Certificate Manager alla voce Services dell'account CloudFront.
Cliccare su Certificate Manager alla voce Services dell’account CloudFront.

In Certificate Manager, fate clic sul pulsante Request a certificate.

Request a certificate in AWS Certificate Manager.
Request a certificate in AWS Certificate Manager.

Nella pagina successiva, selezionate Request a public certificate e fate clic sul pulsante Request a certificate.

Select Request a public certificate and click the Request a certificate button
Selezionare Request a public certificate e fate clic sul pulsante Request a certificate

Aggiungere i Nomi di Dominio

Nel modulo Request a certificate, aggiungete il vostro dominio personalizzato (il dominio principale del vostro sito su Kinsta) all’elenco dei nomi di dominio (se state aggiungendo un dominio root, aggiungete sia il dominio non-www che quello www oppure aggiungete il dominio jolly come *.example.com) e fate clic su Next.

Aggiungere il dominio personalizzato alla richiesta di certificato SSL in AWS Certificate Manager.
Aggiungere il dominio personalizzato alla richiesta di certificato SSL in AWS Certificate Manager.

Convalida del Dominio

Nella schermata successiva, dovrete scegliere la convalida via email o via DNS per il vostro certificato SSL. Scegliete l’opzione che preferite.

Se la registrazione del dominio non prevede una protezione della privacy che nasconda le vostre informazioni di contatto dalle ricerche WHOIS o se le email inviate all’indirizzo del proxy vengono inoltrate al vostro indirizzo email reale, potete utilizzare il metodo di convalida email per convalidare la richiesta di certificato.

Se non ricevete le email all’indirizzo indicato nelle ricerche WHOIS, dovrete optare per il metodo di convalida DNS.

Convalida Email

Selezionate Email validation e fate clic sul pulsante Next per avviare la convalida email.

Convalida email per il certificato SSL AWS.
Convalida email per il certificato SSL AWS.

Potrete ricevere fino a 8 email per ogni dominio aggiunto al certificato e dovrete agire su almeno un’email per ogni dominio per completare la convalida.

Convalida DNS

Se decidete di seguire questo metodo, selezionate il metodo di DNS validation e fate clic sul pulsante Next.

Acm-dns-validation-selected
Convalida DNS di Amazon Certificate Manager per un certificato SSL.

Nella pagina Add tags, se necessario, aggiungete alcuni tag opzionali e fate clic su Review per passare alla fase successiva.

Controllo della richiesta di certificato SSL.
Controllo della richiesta di certificato SSL.

Nella pagina Review, fate clic sul pulsante Confirm and request per procedere con la convalida.

Conferma della richiesta del certificato SSL.
Conferma della richiesta del certificato SSL.

Nella pagina successiva, fate clic sull’icona della freccia accanto al nome di dominio personalizzato per visualizzare i dettagli del CNAME per la convalida. Dovrete creare un record CNAME per il vostro dominio personalizzato con questi dati.

Dati del record CNAME per la convalida del dominio.
Dati del record CNAME per la convalida del dominio.

Per aggiungere questo nuovo record CNAME, accedete al sito in cui gestite il DNS del vostro dominio. In questo esempio, mostreremo come aggiungere il record CNAME in Kinsta DNS. Se avete un provider DNS diverso (potrebbe essere il vostro registrar o un altro host DNS, a seconda di dove avete indirizzato i nameserver del vostro dominio), i passaggi potrebbero essere leggermente diversi.

  1. Cliccate su Kinsta DNS nella barra di navigazione laterale sinistra di MyKinsta.
  2. Cliccate sul link Gestisci per il dominio a cui vuoi aggiungere un record DNS.
  3. Cliccate sul pulsante Aggiungi un record DNS.
  4. Cliccate sulla scheda CNAME e aggiungete l’Hostname (tutto ciò che precede il vostro dominio personalizzato nel campo Nome da CloudFront) e Punta a (Valore da CloudFront). Fate clic sul pulsante Aggiungi record DNS per salvare il nuovo record CNAME.

Nota: a seconda dell’impostazione del TTL del vostro record DNS, potrebbero essere necessari da pochi minuti a diverse ore per la propagazione del record DNS.

Aggiungere un record CNAME per la convalida di AWS SSL.
Aggiungere un record CNAME per la convalida di AWS SSL.

Tornate alla pagina di convalida di CloudFront e fate clic su Continue.

Continue DNS validation.
Continua la convalida DNS.

Una volta che il record CNAME si sarà propagato e sarà stato convalidato, lo stato del certificato SSL passerà da Pending a Issued.

SSL certificate issued in Amazon Certificate Manager.
Certificato SSL rilasciato in Amazon Certificate Manager.

Il vostro nuovo certificato SSL è pronto per essere utilizzato con la vostra nuova distribuzione CloudFront e potete iniziare a configurarlo.

Configurare e Distribuire la Zona CloudFront

Il passaggio successivo consiste nel configurare e distribuire una zona CloudFront. Nel vostro account AWS, cercate “CloudFront” utilizzando la casella di ricerca nella barra dei menu e fate clic su CloudFront alla voce Services.

Selezionare CloudFront tra i Servizi di AWS.
Selezionare CloudFront tra i Servizi di AWS.

Poi fate clic su Create a CloudFront distribution.

Create a CloudFront distribution.
Create a CloudFront distribution.

Potete configurare i dettagli di una nuova zona CloudFront nella pagina Create distribution. Per ottenere la massima compatibilità con l’integrazione di Cloudflare di Kinsta, consigliamo la configurazione riportata di seguito.

Origin

Impostazioni di Origin consigliate:

  • Dominio di origine: Il dominio kinsta.cloud del vostro sito (nel nostro esempio: myawewsomesite.kinsta.cloud). CloudFront non accetta un indirizzo IP come origine, quindi dovete utilizzare il dominio kinsta.cloud del vostro sito in questo campo.
    Una volta inserito il dominio di origine, vengono visualizzati i seguenti 3 campi:
    • Protocol: HTTPS Only
    • HTTPS Port: 443
    • Minimum Origin SSL Protocol: TLSv1
  • Origin path: Lasciate vuoto questo campo.
  • Name (optional): Potete inserire un nome personalizzato per l’origine, ma non è obbligatorio.
  • Enable Origin Shield: No.
Impostazioni di origine consigliate per la distribuzione di CloudFront.
Impostazioni di origine consigliate per la distribuzione di CloudFront.

Comportamento Predefinito della Cache

Durante la configurazione delle impostazioni del comportamento della cache, dovrete creare due policy di CloudFront: la policy della cache e la policy delle richieste, che illustriamo di seguito.

Impostazioni consigliate per la sezione Default Cache Behavior:

  • Path Pattern: Default.
  • Compress Objects Automatically: Yes.
  • Viewer Protocol Policy: Redirect HTTP to HTTPS.
  • Allowed HTTP Methods: GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE.
  • Restrict Viewer Access: No.
  • Cache key and origin requests: Cache policy and origin request policy.
    • Cache Policy: selezionate il vostro nuovo criterio di cache personalizzato (vedi i passaggi per la creazione qui sotto).
    • Origin request policy: selezionate il vostro nuovo criterio di richiesta di origine personalizzato (vedi i passaggi per la creazione).
Recommended cache behavior settings for CloudFront distribution.
Impostazioni consigliate per il comportamento della cache per la distribuzione di CloudFront.

Come Creare un Criterio di Cache per CloudFront

Nella sezione Cache policy, fate clic su Create policy. In questo modo si aprirà la pagina di creazione dei criteri di cache in una nuova scheda del browser.

Create a cache policy in CloudFront.
Creare un criterio di cache in CloudFront.

Nella sezione Details, assegnate un nome (ad esempio KinstaCachePolicy) al criterio di cache.

Nella sezione TTL Settings, utilizzate le seguenti impostazioni:

  • Minimum TTL: 0
  • Maximum TTL: 31536000
  • Default TTL: 86400

Nella sezione Cache key settings, utilizzate le seguenti impostazioni:

  • Headers: None
  • Query Strings: All
  • Cookies: All

Nella sezione Compression support, selezionate Gzip e Brotli, quindi premi il pulsante Create.

Recommended cache policy settings in CloudFront.
Impostazioni consigliate per i criteri di cache in CloudFront.

Chiudete questa scheda del browser e tornate alla scheda in cui state creando la vostra nuova distribuzione CloudFront.

Cliccate sul pulsante di aggiornamento accanto al menu a tendina Cache policy e selezionate il vostro nuovo criterio di cache personalizzato.

Selezionare il criterio di cache personalizzato.
Selezionare il criterio di cache personalizzato.

Come Creare una Policy di Richiesta di Origine in CloudFront

Nella sezione Origin request policy, fate clic su Create policy. In questo modo si aprirà la pagina Create origin request policy in una nuova scheda del browser.

Create an Origin request policy in CloudFront.
Creazione di un criterio di richiesta di origine in CloudFront.

Nella sezione Details, assegnate un nome (ad esempio KinstaOriginPolicy) al criterio di richiesta di origine.

Nella sezione Origin request settings, selezionate quanto segue:

  • Headers: All viewer headers
  • Query Strings: All
  • Cookies: All

Fate clic sul pulsante Create per finalizzare la policy di richiesta.

CloudFront Origin request policy settings.
Impostazioni del criterio di richiesta di CloudFront Origin.

Chiudete questa scheda del browser e tornate alla scheda in cui state creando la vostra nuova distribuzione di CloudFront.

Cliccate sul pulsante di aggiornamento accanto al menu a tendina Origin request policy e selezionate il vostro nuovo criterio di richiesta di origine personalizzato.

Selezionare il criterio di richiesta di origine personalizzato nel menu a tendina del criterio di richiesta di origine.
Selezionare il criterio di richiesta di origine personalizzato nel menu a tendina del criterio di richiesta di origine.

Associazioni di Funzioni

Ti consigliamo di non impostare alcuna Function Associations. Queste permettono di assegnare le funzioni serverless di AWS Lambda a diversi trigger all’interno del ciclo di vita della richiesta (ad esempio richiesta del visualizzatore, risposta del visualizzatore, richiesta di origine, ecc.)

Sebbene sia possibile utilizzare le associazioni di funzioni con il CDN di Kinsta, ci possono essere dei casi in cui una funzione Lambda può entrare in conflitto con Kinsta CDN. Se desiderate utilizzare funzioni Lambda personalizzate sul vostro sito, consigliamo di contattare uno sviluppatore per risolvere eventuali problemi.

Impostazioni

Configurazione consigliata per la sezione Settings:

  • Price Class: selezionate le regioni di CloudFront che desiderate utilizzare con il vostro sito.
  • AWS WAF Web ACL: se dovete creare un ACL con regole firewall personalizzate, consigliamo di contattare un esperto di AWS per evitare conflitti con il CDN di Kinsta.
  • Alternate Domain Name: fate clic su Add item e specificate il dominio personalizzato (il dominio primario del vostro sito su Kinsta).
  • Custom SSL Certificate: selezionate il certificato SSL personalizzato che avete creato all’inizio di questo tutorial.
    Dopo aver selezionato il certificato SSL personalizzato, vedrete alcune opzioni aggiuntive:
    • Legacy clients support: lasciate questa voce deselezionata/disabilitata.
    • Security Policy: TLSv1.2_2021
  • Supported HTTP Versions: HTTP/2
  • Standard logging: Off
  • IPv6: On
Salvare le impostazioni di distribuzione per creare una nuova zona CloudFront.
Salvare le impostazioni di distribuzione per creare una nuova zona CloudFront.

Cliccate sul pulsante Create distribution per terminare la creazione della nuova zona CloudFront.

Risoluzione dei Problemi Comuni di CloudFront

Errori 502

Se vedete errori 502 sul vostro sito dopo aver creato la distribuzione di CloudFront, controllate il dominio di origine nelle impostazioni di origine. Deve essere il dominio kinsta.cloud del vostro sito, non il vostro dominio live.

Le Modifiche non Vengono Visualizzate sul Sito

L’impostazione del sito per l’utilizzo di CloudFront crea un ulteriore livello di cache che dovrà essere cancellato ogni volta che dovrete svuotare la cache. Se avete problemi a vedere le modifiche sul sito o un plugin non si comporta come previsto dopo l’installazione o la reinstallazione, cancellate la cache a tutti i livelli:

  1. Plugin (se applicabile)
  2. Temi (se applicabili)
  3. Cache del sito/server su Kinsta (da MyKinsta o dal plugin Kinsta MU)
  4. Cache su CloudFront (fatelo invalidando gli oggetti. Utilizzando /* per il percorso dell’oggetto da invalidare si cancellerà tutta la cache)
  5. Cache del browser

Indirizzo IP Bloccato da un Falso Positivo

Se avete attivato la mitigazione DDoS o il rilevamento dei bot su CloudFront e a voi o a un visitatore viene erroneamente bloccata la visualizzazione del sito, ciò potrebbe essere dovuto a un falso positivo. In questo caso, dovrete contattare il supporto di Kinsta e di AWS per individuare il punto in cui si verifica il blocco.

Cicli di Redirect HTTP-HTTPS

Se si verificano loop di redirect da HTTP a HTTPS, assicuratevi che Protocol sia impostato su HTTPS Only nelle impostazioni di Origin di CloudFront per il vostro dominio.

I Redirect di Geolocalizzazione IP Non Funzionano Correttamente

La cache della pagina, abilitata di default su CloudFront, potrebbe interferire con i redirect di geolocalizzazione degli IP impostati su Kinsta. In questo caso, dovrete disabilitare la cache su CloudFront o configurare i vostri criteri di cache in modo da memorizzare solo i file che non sono specifici di una località. Se avete problemi di configurazione, consigliamo di contattare uno sviluppatore per configurare il vostro criterio di cache personalizzato.

Impossibile Accedere alla Bacheca di WordPress

Il login non funziona senza il supporto di POST. Anche altre funzionalità del sito potrebbero risentirne. Assicuratevi che Allowed HTTP methods in Default cache behavior siano impostati su: GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE.

Impostazioni Avanzate e Compatibilità

Limitazione dell’Accesso del Visualizzatore con URL e Cookie Firmati

Alcune opzioni, come Restricting access to files on custom origins, potrebbero non funzionare perché Cloudflare metterà sempre in cache le richieste statiche.