Comment résoudre les problèmes de connexion de ma distribution CloudFront à une origine personnalisée via le protocole HTTPS ?

Dernière mise à jour : 09/07/2021

J'ai configuré ma distribution Amazon CloudFront pour établir une connexion à une origine personnalisée via le protocole HTTPS. L’erreur « CloudFront could not connect to Origin » apparaît avec le code d’état HTTP 502 (passerelle erronée).

Solution

Vérifiez que le nom de domaine d'origine de la distribution CloudFront correspond au nom de domaine du certificat

Vérifiez que le nom de domaine d'origine spécifié sur la distribution CloudFront correspond à un nom de domaine sur votre certificat SSL/TLS. Le nom de domaine d'origine de la distribution peut correspondre à l'un des éléments suivants :

  • Le nom de domaine spécifié comme nom commun (CN) du certificat
  • Le nom de domaine spécifié dans le SAN du certificat

Si le nom de domaine d'origine ne correspond à aucun nom de domaine associé à votre certificat, CloudFront renvoie le code d'état HTTP 502 (passerelle erronée).

Vérifiez s'il manque des autorités de certification intermédiaires

Utilisez un outil de vérification SSL pour tester si votre chaîne de certificats est disponible et ne nécessite pas d'autorités de certification intermédiaires.

Si vous utilisez Elastic Load Balancing comme origine personnalisée et devez mettre à jour la chaîne de certificats, procédez comme suit :

Chargez à nouveau le certificat avec la chaîne de certificats adéquate.

- ou -

Utilisez AWS Certificate Manager (ACM) pour demander un certificat public sécurisant votre domaine. ACM est pleinement intégré à Elastic Load Balancing.

Testez la stratégie de protocoles et les chiffrements pris en charge de votre origine

Pour que la liaison SSL aboutisse, votre origine doit prendre en charge les chiffrements utilisés par CloudFront.

Si SSLv3 est activé pour votre stratégie de protocole d'origine, CloudFront utilise uniquement SSLv3 pour communiquer avec votre origine à partir de la ligne de commande ou du terminal Windows.

Remarque : à priori, OpenSSL est disponible par défaut sur les systèmes Linux et macOS. OpenSSL pour Windows est disponible sur le site Web OpenSSL.

Pour tester si votre origine prend en charge les chiffrements utilisés par CloudFront, exécutez les commandes OpenSSL suivantes.

Si votre stratégie de protocole d'origine est définie sur SSLv3, exécutez :

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

Si votre origine utilise TLS, testez votre origine pour chaque protocole par l'intermédiaire de ces commandes :

Pour TLS, exécutez :

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

Pour TLS 1.1, exécutez :

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

Pour TLS 1.2, exécutez :

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

Remarque : définissez la valeur de -servername suivant le nom du domaine d'origine. Si vous utilisez CloudFront pour transférer la valeur Host header, définissez -servername suivant l’enregistrement CNAME de la requête CloudFront.

Une fois connecté à l’origine, vous voyez la sortie des commandes précédentes comme suit. La sortie confirme que votre connexion a été établie à l'aide de la version SSL ou TLS et des chiffrements pris en charge.

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

Remarque : pour plus d'informations sur la résolution des erreurs 502, consultez la section Code d'état HTTP 502 (mauvaise passerelle).


Cet article a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?