web-dev-qa-db-fra.com

Cloudfront redirige www vers un domaine nu avec ssl

Pardonnez-moi si cela a déjà été demandé, il existe un certain nombre de ressources sur ce sujet, mais rien ne semble convenir à mon cas d'utilisation spécifique (https).

J'essaie de rediriger https://www.example.com vers https://example.com . De même, cela devrait fonctionner pour http://www.example.com à https://example.com .

J'ai configuré une distribution Cloudfront avec l'origine d'un compartiment s3, redirigé http vers https, ajouté le cname example.com et ajouté mon certificat de domaine (qui fonctionne pour le sous-domaine www ainsi que pour le domaine nu).

J'ai également mis en place une distribution séparée, avec un nom de fichier pour www.example.com, ajouté le certificat et paramétré l'Origin sur un compartiment s3 distinct qui, dans (hébergement de site Web statique) redirige toutes les demandes vers https: //. example.com .

La redirection fonctionne comme prévu pour http://example.com vers https://example.com , cependant http (s): //www.example.com to - https://example.com pas.

Dans la route 53, le domaine racine est aliasé vers la première distribution Cloudfront et www avec la seconde.

65
Marc Greenstock

J'ai trouvé la solution grâce à cette réponse: Amazon S3 Redirect et Cloudfront

En bref:

Cloudfront ne respecte pas les règles de redirection définies dans S3 si l’origine n’est que l’ID du compartiment. Au lieu de cela, j'ai dû définir l'origine sur le nom d'hôte du site Web statique s3 fourni.

48
Marc Greenstock

Pour héberger le site Web sur AWS afin que:

https://www.example.com, http://www.example.com et http://example.com tous redirigent vers https://example.com

tu dois:

  1. Créez deux compartiments S3 nommés: example.com et www.example.com.

  2. Activez l'hébergement statique sur ces deux compartiments.

  3. Configurez la redirection dans le compartiment www.example.com vers: https://example.com. Dans les propriétés du compartiment, choisissez Hébergement statique de sites Web => Rediriger toutes les demandes vers un autre nom d'hôte . Dans le champ Cible ou domaine , entrez example.com, dans Protocole , entrez https

  4. Pour ces compartiments, créez deux Distributions CloudFront. Chacune de ces distributions pointe vers le compartiment correspondant:

  5. Pour le nom de domaine d'origine , indiquez les URL de compartiment indiquées dans la section Hébergement Web statique . Les URL doivent avoir la forme (ou similaire): example.com.s3-website-us-west-1.amazonaws.com

    • Sur les deux distributions, redirigez HTTP HTTP vers HTTPS .

    • N'UTILISEZ PAS L'URL SUGGÉRÉE PAR Amazon AUTOCOMPLETE!

    • NE PAS METTRE Objet racine par défaut PROPERTY!

  6. Configurez DNS en configurant les enregistrements A pour www.example.com et example.com afin qu'ils pointent vers les distributions CloudFront correspondantes.

Pourquoi ça marche? CloudFront fournit la redirection de HTTP vers HTTPS dans les deux cas (avec et sans www). Le compartiment pour www.example.com fournit une redirection vers example.com. Si vous ne possédiez pas cette distribution, le compartiment ne pourrait pas rediriger la demande pour https://www.example.com. S3 lui-même ne prend pas en charge le protocole HTTPS pour l'hébergement de sites Web statiques.

73
RKI