Come posso risolvere l'errore 502: "Impossibile soddisfare la richiesta" di CloudFront?

Ultimo aggiornamento: 22/06/2022

Ho configurato una distribuzione Amazon CloudFront con un dominio personalizzato. Quando richiedo un nome canonico (CNAME) di dominio alternativo su CloudFront, viene visualizzata una risposta di errore 502 con il messaggio "Impossibile soddisfare la richiesta". In che modo posso risolvere il problema?

Breve descrizione

Un errore 502 si verifica quando CloudFront non è in grado di connettersi all'origine. Consulta le sezioni seguenti relative alle cause dell'errore e alla risoluzione dei problemi.

Risoluzione

CloudFront non riesce a stabilire una connessione TCP con il server di origine

Per impostazione predefinita, CloudFront si connette all'origine tramite le porte 80 (per HTTP) e 443 (per HTTPS). Se l'origine non consente il traffico su queste porte o blocca la connessione dell'indirizzo IP di CloudFront, la connessione TCP ha esito negativo e produce un errore 502. Per risolvere il problema, verifica che l'impostazione del protocollo della distribuzione CloudFront sia impostata sulla porta corretta per le connessioni HTTP o HTTPS.

Esegui il seguente comando per testare la connettività delle porte:

telnet ORIGIN_DOMAIN/ORIGIN_IP PORT

Nota: nel campo ORIGIN_DOMAIN inserisci l'ID del dominio di origine. Nel campo ORIGIN_IP inserisci l'indirizzo IP dell'origine. Nel campo PORT inserisci il numero di porta che stai utilizzando per connetterti all'origine.

Negoziazione SSL/TLS con il server di origine non riuscita

Se la transazione SSL/TLS ha esito negativo, la connessione tra CloudFront e l'origine fallisce, generando un errore 502. Consulta le sezioni seguenti per scoprire le cause di un errore di transazione SSL/TLS e come risolverlo:

Il certificato SSL non corrisponde al nome di dominio

Il certificato SSL all'origine deve includere o coprire uno dei seguenti nomi di dominio:

  • Il nome del dominio di origine nei seguenti campi del certificato: Common Name (Nome comune) o Subject Alternative Names (Nomi alternativi del soggetto).
  • Se l'intestazione host del visualizzatore in entrata viene inoltrata all'origine nella distribuzione CloudFront, il certificato di origine deve includere o coprire il dominio dell'intestazione host.

Per verificare il Common Name (Nome comune) e i Subject Alternative Names (Nomi alternativi del soggetto) nel certificato, esegui il seguente comando:

$ openssl s_client -connect DOMAIN:443 --servername SERVER_DOMAIN | openssl x509 -text | grep -E '(CN|Alternative)' -A 2

Nota: nel campo DOMAIN inserisci il nome del dominio di origine. Nel campo SERVER_DOMAIN inserisci il nome del dominio di origine. Oppure, se l'intestazione host del visualizzatore viene inoltrata all'origine, nel campo SERVER_DOMAIN inserisci il valore dell'intestazione host in entrata

Configura il criterio della cache o il criterio di richiesta di origine per includere l'intestazione host se si verificano le seguenti condizioni:

  1. Il nome comune o SAN (Storage Area Network) del certificato SSL include il valore dell'intestazione host del visualizzatore
  2. L'intestazione host non viene inoltrata all'origine

Il certificato di origine è scaduto, non attendibile o autofirmato

Il certificato installato nell'origine personalizzata deve essere firmato da un'autorità di certificazione attendibile. Le autorità di certificazione considerate attendibili da CloudFront sono riportate nell'Elenco di certificati CA inclusi in Mozilla disponibile sul sito Web di Mozilla.

CloudFront non supporta i certificati autofirmati per la configurazione SSL sull'origine. I certificati autofirmati vengono emessi dalle organizzazioni stesse o sono generati localmente su un server Web anziché essere emessi da un'autorità di certificazione attendibile.

Per verificare se il tuo certificato di origine è scaduto, esegui il seguente comando OpenSSL. Nell'output, trova i parametri Not Before (Non prima) e Not After (Non dopo). Conferma che la data e l'ora correnti rientrano nel periodo di validità del certificato.

$ openssl s_client -connect DOMAIN:443 --servername SERVER_DOMAIN | openssl x509 -text | grep Validity -A 3

Nota: nel campo DOMAIN inserisci il nome del dominio di origine. Nel campo SERVER_DOMAIN inserisci il nome del dominio di origine. Oppure, se l'intestazione host del visualizzatore viene inoltrata all'origine, nel campo SERVER_DOMAIN inserisci il valore dell'intestazione host in entrata

La mancanza di certificati CA intermedi o l'ordine errato dei certificati intermedi causa un errore tra la comunicazione HTTPS e l'origine. Per verificare la catena di certificati, esegui il seguente comando.

$ openssl s_client -showcerts -connect DOMAIN:443 --servername SERVER_DOMAIN

Nota: nel campo DOMAIN inserisci il nome del dominio di origine e per SERVER_DOMAIN inserisci il nome del dominio di origine. Oppure, se l'intestazione host del visualizzatore viene inoltrata all'origine, nel campo SERVER_DOMAIN inserisci il valore dell'intestazione host in entrata

CloudFront non supporta la suite di crittografia dell'origine

La transazione SSL/TLS tra CloudFront e l'origine ha esito negativo se non esiste una suite di crittografia negoziata comune. Per confermare che stai utilizzando la suite di crittografia corretta, consulta Protocolli e cifrari supportati tra CloudFront e l'origine.

Puoi anche utilizzare uno strumento di test del server SSL per verificare se il tuo nome di dominio di origine è incluso nell'elenco delle crittografie supportate.

CloudFront non è in grado di risolvere l'indirizzo IP di origine

Se CloudFront non è in grado di risolvere il dominio di origine, restituisce l'errore 502. Per risolvere questo problema, utilizza un comando dig/nslookup per verificare se il dominio di origine si risolve in un IP.

Linux:

$ dig ORIGIN_DOMAIN_NAME

Windows:

nslookup ORIGIN_DOMAIN_NAME

Nota: per ORIGIN_DOMAIN_NAME, inserisci il nome del dominio di origine.

In caso di esito positivo, il comando restituisce l'IP del nome di dominio di origine. Utilizza uno strumento di verifica DNS per verificare la risoluzione DNS in diverse aree geografiche.

L'errore è causato dall'origine a monte

L'origine personalizzata definita nella distribuzione CloudFront può essere un proxy, un nome host di rete di distribuzione di contenuti (CDN) o un load balancer connesso all'origine effettiva. Se uno di questi servizi intermedi non riesce a connettersi all'origine, viene restituito un errore 502 a CloudFront. Per risolvere il problema, rivolgiti al tuo fornitore di servizi.

La funzione Lambda@edge associata alla distribuzione CloudFront ha avuto esito negativo

Se la funzione Lambda@edge restituisce una risposta non valida a CloudFront, quest'ultimo restituisce un errore 502. Al fine di risolvere questo problema, controlla la funzione Lambda@edge per vedere se si verificano i seguenti problemi comuni:

  • Oggetto JSON restituito
  • Campi obbligatori mancanti
  • Oggetto non valido nella risposta
  • Aggiunta o aggiornamento di intestazioni non consentite o di sola lettura
  • Superamento delle dimensioni massime del testo
  • Caratteri o valori non validi

Per ulteriori informazioni, consulta Esecuzione di test e debugging delle funzioni Lambda@Edge.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?