153 votes

Comment configurer le SSL pour le seau Amazon S3 ?

J'utilise un seau Amazon S3 pour le chargement et le téléchargement de données à l'aide de mon application .NET. Maintenant, ma question est la suivante : je veux accéder à mon seau S3 en utilisant SSL. Est-il possible de mettre en œuvre SSL pour un seau Amazon S3 ?

1 votes

154voto

reach4thelasers Points 7375

Vous pouvez accéder à vos fichiers via SSL comme ceci :

https://s3.amazonaws.com/bucket_name/images/logo.gif

Si vous utilisez un domaine personnalisé pour votre seau, vous pouvez utiliser S3 et CloudFront avec votre propre certificat SSL (ou en générer un gratuitement via Amazon Certificate Manager) : http://aws.amazon.com/cloudfront/custom-ssl-domains/

45 votes

Ce n'est pas tout à fait vrai. Vous pouvez utiliser les noms de seaux sans points : ce-que-je-me-sais-tout-bucket.s3.amazonaws.com Amazon a un certificat joker. Puisque vous ne pouvez pas utiliser de points, vous ne pouvez pas avoir un domaine CNAME pointant vers votre seau.

4 votes

Attention aux noms de seaux contenant des points ! Le SSL ne fonctionnera pas sur les appareils iOS mais fonctionnera parfaitement dans Chrome. Voir stackoverflow.com/questions/3048236/

1 votes

Amazon CloudFront s'en chargera pour vous.

27voto

Joseph Lust Points 4961

Des certificats SSL pour des domaines personnalisés viennent d'être ajoutés aujourd'hui pour 600 $/certes/mois. Inscrivez-vous pour recevoir votre invitation ci-dessous : http://aws.amazon.com/cloudfront/custom-ssl-domains/

Mise à jour : Certificats fournis par le client SNI sont désormais disponibles sans frais supplémentaires. C'est beaucoup moins cher que 600 $/mois, et avec XP qui a presque disparu, cela devrait bien fonctionner pour la plupart des cas d'utilisation.

@skalee AWS a un mécanisme pour réaliser ce que l'affiche demande, "implémenter SSL pour un seau Amazon s3", il s'appelle CloudFront . J'interprète le terme "implémenter" comme "utiliser mes certificats SSL", et non comme "mettre simplement un S sur l'URL HTTP", ce que le PO aurait pu supposer.

Étant donné que CloudFront coûte exactement le même prix que S3 (0,12 $/Go), mais qu'il possède une tonne de fonctionnalités supplémentaires autour de SSL ET qu'il vous permet d'ajouter votre propre certificat SNI sans frais supplémentaires, c'est la solution évidente pour "mettre en œuvre SSL" sur votre domaine.

67 votes

CloudFront n'est pas S3.

6 votes

@skalee Correct, mais si vous voulez y accéder via un domaine avec des certificats SSL personnalisés, comme le demande le PO, vous pouvez configurer des certificats SSL CNAME personnalisés de cette façon et y accéder via CF.

2 votes

Pour l'instant, j'ai mis en place deux CNAME : static-s3 et static-cf, le premier pointant directement vers mon S3, le second vers CF. Le premier ne peut pas supporter SSL, le second oui, mais c'est CF et non S3 comme le souligne skalee. C'est le mieux que nous puissions faire pour l'instant.

13voto

Ralph Vugts Points 75

J'ai découvert que vous pouvez le faire facilement via le service Cloud Flare.

Configurer un seau, activer l'hébergement web sur le seau et faire pointer le CNAME souhaité vers ce point de terminaison via Cloudflare... et payer pour le service bien sûr... mais 5 à 20 $ contre 600 $ est beaucoup plus facile à digérer.

Tous les détails ici : https://www.engaging.io/easy-way-to-configure-ssl-for-amazon-s3-bucket-via-cloudflare/

1 votes

Essayez mon guide ici : engaging.io/

4voto

Mika Kujapelto Points 41

Ce n'est pas possible directement avec S3, mais vous pouvez créer une distribution Cloud Front à partir de votre seau. Ensuite, allez dans le gestionnaire de certificats et demandez un certificat. Amazon les donne gratuitement. Une fois que vous avez confirmé avec succès la certification, affectez-la à votre distribution Cloud Front. N'oubliez pas non plus de définir la règle de redirection de http vers https.

J'héberge quelques sites Web statiques sur Amazon S3, comme mon site Web personnel auquel j'ai attribué le certificat SSL car il dispose de la distribution Cloud Front.

3voto

skalee Points 3227

Si vous en avez vraiment besoin, envisagez des redirections.

Par exemple, sur demande à assets.my-domain.example.com/path/to/file vous pourriez effectuer une redirection 301 ou 302 vers my-bucket-name.s3.amazonaws.com/path/to/file o s3.amazonaws.com/my-bucket-name/path/to/file (veuillez vous rappeler que dans le premier cas my-bucket-name ne peut pas contenir de points, sinon il ne correspondra pas à l'un des éléments suivants *.s3.amazonaws.com, s3.amazonaws.com indiqué dans le certificat S3).

Je ne l'ai pas testé, mais je pense que cela pourrait fonctionner. Je vois cependant quelques inconvénients.

La première est assez évidente, une demande supplémentaire pour obtenir cette redirection. Et je doute que vous puissiez utiliser le serveur de redirection fourni par votre registraire de nom de domaine - vous devriez y télécharger un certificat approprié d'une manière ou d'une autre - vous devez donc utiliser votre propre serveur pour cela.

La seconde est que vous pouvez avoir des urls avec votre nom de domaine dans le code source de la page, mais lorsque par exemple l'utilisateur ouvre l'image dans un onglet séparé, la barre d'adresse affichera l'url cible.

2 votes

Je ne suis pas certain mais je pense que cela pourrait causer des problèmes de CORS.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X