Salta al contenuto

Come posso risolvere un errore 502 "The request could not be satisfied" in CloudFront?

6 minuti di lettura
0

Ho configurato una distribuzione Amazon CloudFront con un dominio personalizzato. Desidero risolvere l'errore 502 "The request could not be satisfied" che ricevo quando utilizzo CloudFront per richiedere il dominio CNAME (Canonical Name) alternativo.

Risoluzione

CloudFront non riesce a risolvere l'indirizzo IP di origine

Se CloudFront non riesce a risolvere il dominio di origine, restituisce l'errore "The request could not be satisfied". A meno che la distribuzione non utilizzi solamente origini Amazon Virtual Private Cloud (Amazon VPC), CloudFront deve essere in grado di risolvere il dominio di origine tramite query DNS pubbliche.

Non serve rendere l'origine accessibile pubblicamente, ma devi poter eseguire pubblicamente query sul suo dominio. Per risolvere il problema, utilizza un comando dig o nslookup per determinare se il dominio di origine si risolve in un indirizzo IP.

Se utilizzi Linux, esegui questo comando:

dig ORIGIN_DOMAIN_NAME

Se utilizzi Windows, esegui questo comando:

nslookup ORIGIN_DOMAIN_NAME

Nota: sostituisci ORIGIN_DOMAIN_NAME con il nome di dominio della tua origine.

I comandi restituiscono l'indirizzo IP del nome di dominio di origine. Utilizza uno strumento di controllo DNS per verificare la risoluzione DNS in diverse aree geografiche. Ad esempio, puoi utilizzare lo strumento Check DNS propagation sul sito web DNS Checker. Controlla se i metodi di verifica non riescono a eseguire i query sul dominio di origine. Quindi contatta il provider DNS pubblico per verificare se esiste un record DNS risolvibile pubblicamente per il dominio di origine.

Per ulteriori informazioni sulla risoluzione dei problemi relativi al sistema DNS, consulta Come funziona il DNS e come faccio a risolvere gli errori DNS parziali o intermittenti?

Il certificato SSL/TLS non corrisponde al nome di dominio

Il certificato SSL/TLS dell'origine deve includere uno dei seguenti nomi di dominio:

  • Il nome di dominio di origine nel campo Nome comune o Nomi alternativi del soggetto del certificato.
  • Il nome di dominio dell'intestazione host per le intestazioni host dei visualizzatori in entrata che la richiesta inoltra all'origine nella distribuzione CloudFront.

Per verificare i campi Nome comune e Nomi alternativi del soggetto del certificato, esegui questo comando:

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

Nota: sostituisci DOMAIN con il nome di dominio di origine e SERVER_DOMAIN con il nome di dominio di origine. Se la richiesta inoltra l'intestazione host del visualizzatore all'origine, sostituisci SERVER_DOMAIN con il valore dell'intestazione host in entrata.

Nelle seguenti situazioni devi configurare la policy della cache o la policy delle richieste origine per includere l'intestazione host:

  • Il certificato dell'origine include il valore dell'intestazione host del visualizzatore come nome comune o nome alternativo del soggetto (SAN) del certificato SSL/TLS.
  • La richiesta non inoltra l'intestazione host all'origine.

Il certificato dell'origine è scaduto, non affidabile o autofirmato, oppure la catena di certificati è nell'ordine sbagliato

Un'autorità di certificazione (CA) attendibile deve firmare il certificato installato nell'origine personalizzata. Per un elenco delle CA attendibili, consulta Certificate authorities (Autorità di certificazione) sul sito web Mozilla. CloudFront non supporta le origini che utilizzano certificati SSL/TLS autofirmati.

Per verificare se il certificato dell'origine è scaduto, esegui questo comando OpenSSL:

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

Nota: sostituisci DOMAIN con il nome di dominio di origine e SERVER_DOMAIN con il nome di dominio di origine. Se la richiesta inoltra l'intestazione host del visualizzatore all'origine, sostituisci SERVER_DOMAIN con il valore dell'intestazione host in entrata.

Nell'output del comando, individua i parametri Not Before e Not After. Verifica che la data e l'ora correnti rientrino nel periodo di validità del certificato.

La mancanza di certificati CA intermedi o un ordine errato dei certificati intermedi causa l'interruzione della comunicazione tra HTTPS e l'origine.

Per controllare la catena di certificati, esegui questo comando:

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

Nota: sostituisci DOMAIN con il nome di dominio di origine e SERVER_DOMAIN con il nome di dominio di origine. Se la richiesta inoltra l'intestazione host del visualizzatore all'origine, sostituisci SERVER_DOMAIN con il valore dell'intestazione host in entrata.

Per ulteriori informazioni, consulta Requisiti per l'utilizzo dei certificati SSL/TLS con CloudFront.

CloudFront non supporta la suite di cifratura dell'origine

Le transazioni SSL/TLS tra CloudFront e l'origine hanno esito negativo quando non esiste una suite di cifratura negoziata comune. Per risolvere il problema, devi utilizzare protocolli e cifrari supportati.

Utilizza uno strumento di test del server SSL per verificare se l'elenco dei cifrari supportati include la suite di cifratura dell'origine. Ad esempio, puoi utilizzare il servizio SSL Server Test sul sito web Qualys.

Sono presenti problemi a monte dell'origine

Puoi utilizzare un bilanciatore del carico o un nome host proxy della rete di distribuzione di contenuti (CDN) connesso all'origine come origine personalizzata nella distribuzione CloudFront. Se uno di questi servizi intermediari non riesce a connettersi all'origine, ricevi un errore 502. Per risolvere il problema, rivolgiti al provider di servizi dell'origine.

Se utilizzi un Application Load Balancer come origine, consulta Come posso risolvere i problemi relativi agli errori HTTP 502 del mio Application Load Balancer?

Se utilizzi Gateway Amazon API, consulta Come posso risolvere gli errori HTTP 502 generati dalle REST API di Gateway API con l'integrazione proxy Lambda?

La funzione Lambda@Edge associata alla distribuzione CloudFront non ha superato la convalida

Se la funzione Lambda@Edge restituisce una risposta a CloudFront che non è valida, CloudFront restituisce un errore 502. Per risolvere il problema, verifica se sono presenti i seguenti problemi relativi alla funzione Lambda@Edge:

  • Viene restituito l'oggetto JSON.
  • Mancano campi obbligatori.
  • Nella risposta sono presenti oggetti non validi.
  • Non è consentita la possibilità di aggiungere o aggiornare.
  • Le intestazioni sono di sola lettura.
  • Hai superato la dimensione massima del corpo.
  • Sono presenti caratteri o valori non validi.

Per risolvere questi problemi, consulta Verifica ed esegui il debug delle funzioni Lambda @Edge. Inoltre, consulta Come posso risolvere gli errori 500, 502 e 503 causati dalle funzioni Lambda@Edge in CloudFront?

AWS UFFICIALEAggiornata 6 mesi fa