Amazon S3 - HTTPS / SSL - Est-ce possible? [fermé]

177

J'ai vu quelques autres questions à ce sujet sans aucune réponse ou information réelle (du moins en apparence).

J'ai une image ici:
http://furniture.retailcatalog.us/products/2061/6262u9665.jpg

Qui redirige vers:
http://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

J'en ai besoin (https):
https://furniture.retailcatalog.us/products/2061/6262u9665.jpg

J'ai donc installé un ssl générique sur retailcatalog.us (nous avons d'autres sous-domaines), mais cela ne fonctionnait pas. Je suis allé vérifier
https://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

Et cela ne fonctionnait pas, ce qui signifie que sur le site Web Amazon S3 lui-même, le https ne fonctionnait pas.

Comment faire fonctionner cela?

Kerry Jones
la source
Votre question n'explique pas exactement ce que vous voulez faire. Voulez-vous rediriger les requêtes http vers https? Si tel est le cas, vous devez reformuler le titre de la question pour mieux énoncer ce fait. Cela aidera plus de gens à trouver cette question et à y répondre.
A. Levy
Non, je souhaite accéder à l'image en toute sécurité. Est-ce possible?
Kerry Jones
Cette dernière URL fonctionne pour moi, bien qu'elle soit accompagnée d'une erreur de certificat qui est probablement un problème pour vous
Michael Haren
Oui, c'est un problème. Pour moi, cela m'empêche de le voir en premier lieu et je dois vérifier le certificat manuellement pour le voir.
Kerry Jones
1
seulement quelques années de retard dans le jeu, mais les cnames ssl fonctionnent avec cloudfront. exemple cdn.example.com pointe vers randomstring.cloudfront.net qui pointe vers votre compartiment s3. https: // cdn.example.com diffusera le contenu sans erreur, mais vous obtenez un avertissement de certificat si vous essayez de parcourir directement l'URL.
Neil McGuigan

Réponses:

182

Ceci est une réponse que j'ai obtenue de leurs services Premium

Bonjour,

C'est en fait un problème avec la façon dont SSL valide les noms contenant un point, «.»,> Caractère. Nous avons documenté ce comportement ici:

http://docs.amazonwebservices.com/AmazonS3/latest/dev/BucketRestrictions.html

La seule solution simple pour cela consiste à utiliser un nom de compartiment qui ne contient pas ce caractère. Vous pouvez à la place utiliser un seau nommé «Furniture-retailcatalog-us». Cela vous permettrait d'utiliser HTTPS avec

https://furniture-retailcatalog-us.s3.amazonaws.com/

Vous pouvez, bien sûr, mettre un enregistrement DNS CNAME pour le rendre plus convivial. Par exemple,

images-furniture.retailcatalog.us DANS CNAME furniture-retailcatalog-us.s3.amazonaws.com.

J'espère que cela pourra aider. Faites-nous savoir si vous avez d'autres questions.

Services Web Amazon

Malheureusement, votre CNAME "convivial" entraînera une discordance de nom d'hôte lors de la validation du certificat, vous ne pouvez donc pas vraiment l'utiliser pour une connexion sécurisée. Une grande fonctionnalité manquante de S3 est l'acceptation de certificats personnalisés pour vos domaines.


MISE À JOUR 02/10/2012

De @mpoisot:

Le lien fourni par Amazon ne dit plus rien sur https. J'ai fouillé dans la documentation S3 et j'ai finalement trouvé une petite note à ce sujet sur la page Virtual Hosting: http://docs.amazonwebservices.com/AmazonS3/latest/dev/VirtualHosting.html


MISE À JOUR 17/06/2013

De @Joseph Lust:

Viens de le recevoir! Découvrez-le et inscrivez-vous pour une invitation: http://aws.amazon.com/cloudfront/custom-ssl-domains

Kerry Jones
la source
22
+1 pour le suivi de votre question gagnée - des informations très utiles facilement ignorées dans la documentation S3!
Steffen Opel
1
Le lien fourni par Amazon ne dit plus rien sur https. J'ai fouillé dans la documentation S3 et j'ai finalement trouvé une petite note à ce sujet sur la page d'hébergement virtuel: docs.amazonwebservices.com/AmazonS3/latest/dev/…
mpoisot
4
Notez que c'est 600 $ PAR MOIS. : -o
solitaire
8
Il est désormais possible d'utiliser votre propre certificat SSL pour Cloudfront sans frais supplémentaires . Les frais de 600 $ / m ont donc disparu.
schickling
4
@schickling Il convient également de noter que CloudFront a effectué ce changement en vous permettant de choisir entre SNI ou SSL IP dédié . Le SSL IP dédié continue de coûter 600 $, mais le SSL SNI est gratuit. Assurez-vous simplement que les navigateurs que vous ciblez prennent en charge SNI.
Ryan Pendleton
111

Je sais que c'est un an après les faits, mais utiliser cela résout le problème: https://s3.amazonaws.com/furniture.retailcatalog.us/products/2061/6262u9665.jpg

J'ai vu cela sur un autre site ( http://joonhachu.blogspot.com/2010/09/helpful-tip-for-amazon-s3-urls-for-ssl.html ).

payton109
la source
18
ne semble pas vraiment le résoudre. Il utilise toujours le nom de domaine amazon (s3.amazonaws.com) donc ça craint!
themihai
14
Ça ne craint pas. Oui, le domaine est différent, mais il vous permet de diffuser du contenu via SSL sur un compartiment existant sur S3. Sans ce schéma, vous devez créer un compartiment uniquement pour vos fichiers fournis par SSL (car le certificat SSL générique S3 ne correspondra pas à files.yourdomain.com.s3.amazonaws.com): secure-yourdomain.s3.amazonaws.com . Maintenant, vous avez deux compartiments à gérer au lieu d'un. Ce n'est pas grave, mais dans les applications Web, pas plus de complexité que ce qui est absolument nécessaire est nul.
andrew
7
Salut, je suis en fait le gars qui a écrit le lien de référencement que vous avez mis là "Joonha". Le petit bijou à ne pas manquer est d'utiliser cette technique + "//" seule comme début de votre protocole. Dans mon entreprise de développement de commerce électronique, nous créons des liens vers des URL avec "//" au lieu de "https: // ou" http: // "parce que nous n'avons jamais à nous en soucier à ce stade.
Jason Sebring
4
Il semble que cela ne fonctionne plus, j'ai eu une erreur PermanentRedirect.
Paulo Casaretto
5
Voir ma nouvelle réponse concernant les raisons pour lesquelles cela fonctionne pour certaines personnes et pas pour d'autres. La région dans laquelle se trouvent vos seaux est importante.
Nate
47

La réponse de payton109 est correcte si vous êtes dans la région par défaut US-EAST-1. Si votre bucket se trouve dans une région différente, utilisez une URL légèrement différente:

https://s3-<region>.amazonaws.com/your.domain.com/some/asset

<region>est le nom de l'emplacement du compartiment. Par exemple, si votre compartiment se trouve dans la région us-west-2(Oregon), vous pouvez le faire:

https://s3-us-west-2.amazonaws.com/your.domain.com/some/asset
Nate
la source
1
Lorsque vous utilisez un enregistrement DNS CNAME, il ne s'agit que de la résolution du domaine, vous ne pouvez donc pas rediriger vers une URL avec un chemin. Voir aussi: stackoverflow.com/questions/32714351/…
Sebastien Lorber
Cela fonctionne pour moi et c'est la réponse la plus complète.
besimple
2
C'est bien, mais cela contourne les règles d'hébergement de sites Web statiques, telles que les règles de redirection vers index.html
Kim T
C'est la solution parfaite pour les développeurs Web sans équipe devops ou sys-admin. Bien sûr, vos actifs n'auront pas de domaine élégant, mais combien de clients inspectent le html ou les requêtes sous-jacentes et tsk tsk tsk à l'URL du domaine? Pas beaucoup! En premier lieu, extraire vos ressources statiques de votre application et les placer sur S3.
stwr667
8

Comme indiqué précédemment, ce n'est pas directement possible, mais vous pouvez configurer Apache ou nginx + SSL sur une instance EC2, CNAME votre domaine souhaité vers cela et inverser le proxy vers les URL S3 (domaine non personnalisé).

Mark Wang
la source
Une façon de trouver le chemin SSL complet vers une ressource S3 consiste à l'explorer à l'aide de la console AWS. Le chemin complet est affiché en bas de l'onglet Présentation.
eric gilbertson