Come posso risolvere i problemi relativi alla connessione della mia distribuzione CloudFront a un'origine personalizzata tramite HTTPS?

4 minuti di lettura
0

Ho configurato la mia distribuzione Amazon CloudFront per connettermi a un'origine personalizzata tramite HTTPS. Ora ricevo l'errore "CloudFront non è riuscito a connettersi a Origin" con il codice di stato HTTP 502 (Bad Gateway).

Risoluzione

Verifica che il nome di dominio Origin della distribuzione CloudFront corrisponda al nome di dominio del certificato

Verifica che il nome di dominio di origine specificato nella tua distribuzione CloudFront corrisponda a un nome di dominio sul tuo certificato SSL/TLS di origine. Il nome di dominio di origine della distribuzione può corrispondere a uno dei seguenti:

  • Il nome di dominio specificato come nome comune (CN) del certificato.
  • Il nome di dominio specificato nel Subject Alternative Name (SAN) del certificato.

Se il nome di dominio di origine non corrisponde ad alcun nome di dominio associato al certificato, CloudFront restituisce il codice di stato HTTP 502 (Bad Gateway).

Verifica la presenza di eventuali autorità di certificazione intermedie mancanti.

Utilizza un correttore SSL per verificare se la catena di certificati di origine è disponibile e non necessita di autorità di certificazione intermedie.

Se utilizzi Elastic Load Balancing come origine personalizzata e devi aggiornare la catena di certificati, procedi come segue:

Carica nuovamente il certificato con la catena di certificati corretta.

-oppure-

Usa AWS Certificate Manager (ACM) per richiedere un certificato pubblico che protegga il tuo dominio. ACM è completamente integrato con Elastic Load Balancing.

Testa la politica dei protocolli e i codici supportati da Origin.

Affinché l'handshake SSL abbia successo, la tua origine deve supportare i cifrari utilizzati da CloudFront.

Se la policy del protocollo di origine ha SSLv3 attivato, CloudFront utilizza solo SSLv3 per comunicare con l'origine dalla riga di comando o dal terminale Windows.

Nota: OpenSSL è generalmente disponibile per impostazione predefinita sui sistemi Linux e macOS. OpenSSL per Windows è disponibile sul sito Web di OpenSSL.

Per verificare se la tua origine supporta i codici utilizzati da CloudFront, esegui i seguenti comandi OpenSSL.

Se la politica del protocollo di origine è impostata su SSLv3, esegui:

echo | openssl s_client -ssl3 -cipher 'ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443

Se la tua origine utilizza TLS, verifica l'origine per ogni protocollo utilizzando questi comandi:

Per TLS, esegui:

echo | openssl s_client -tls1 -cipher 'ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443 -servername your.origin.domain

Per TLS 1.1, esegui:

echo | openssl s_client -tls1_1 -cipher 'ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443 -servername your.origin.domain

Per TLS 1.2, esegui:

echo | openssl s_client -tls1_2 -cipher 'ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES256-SHA384 AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443 -servername your.origin.domain

Nota: imposta il valore di -servername sul nome di dominio di origine. Oppure, se utilizzi CloudFront per inoltrare l'intestazione Host, imposta **-servername ** su CNAME dalla richiesta CloudFront.

Se ti connetti correttamente all'origine, vedrai un output dei comandi precedenti simile al seguente. L'output conferma che la connessione è stata stabilita con successo utilizzando la versione SSL o TLS e le cifrature supportate.

New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-SHA256
....
Timeout : 7200 (sec)
Verify return code: 0 (ok)
----
DONE

Nota: per ulteriori indicazioni sulla risoluzione dei problemi relativi agli errori 502, consulta il codice di stato HTTP 502 (Bad Gateway).


Informazioni correlate

Richiesta di HTTPS per la comunicazione tra CloudFront e la tua origine personalizzata

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa