Amazon S3 - HTTPS / SSL - È possibile? [chiuso]


177

Ho visto alcune altre domande a riguardo senza risposte o informazioni reali (o almeno così è apparso).

Ho un'immagine qui:
http://furniture.retailcatalog.us/products/2061/6262u9665.jpg

Che sta reindirizzando a:
http://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

Ho bisogno che sia (https):
https://furniture.retailcatalog.us/products/2061/6262u9665.jpg

Quindi ho installato un jolly ssl su retailcatalog.us (abbiamo altri sottodomini), ma non funzionava. Sono andato a controllare
https://furniture.retailcatalog.us.s3.amazonaws.com/products/2061/6262u9665.jpg

E non funzionava, il che significa che sul sito Web Amazon S3 stesso l'https non funzionava.

Come faccio a farlo funzionare?


La tua domanda non spiega esattamente cosa vuoi fare. Vuoi effettuare richieste di reindirizzamento http su https? In tal caso, è necessario riformulare il titolo della domanda per affermare meglio questo fatto. Ciò aiuterà più persone a trovare questa domanda e rispondere.
A. Levy,

No, voglio accedere all'immagine in modo sicuro. È possibile?
Kerry Jones,

L'ultimo URL funziona per me, anche se viene fornito con un errore del certificato che probabilmente è un problema per te
Michael Haren,

Sì, questo è un problema. Per me in mi impedisce di vederlo in primo luogo e devo verificare manualmente il certificato per vederlo.
Kerry Jones,

1
solo pochi anni dopo il gioco, ma i nomi SSL funzionano con il cloudfront. esempio cdn.example.com punta a randomstring.cloudfront.net che punta al tuo bucket s3. https: // cdn.example.com pubblicherà il contenuto senza errori, ma riceverai un avviso cert se provi a navigare direttamente nell'URL.
Neil McGuigan,

Risposte:


182

Questa è una risposta che ho ricevuto dai loro servizi premium

Ciao,

Questo è in realtà un problema con il modo in cui SSL convalida i nomi contenenti un punto, '.',> Carattere. Abbiamo documentato questo comportamento qui:

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

L'unica soluzione semplice per questo è usare un nome bucket che non contenga quel carattere. È possibile invece utilizzare un secchio chiamato "mobile-retailcatalog-us". Ciò consentirebbe di utilizzare HTTPS con

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

Naturalmente, potresti mettere un record DNS CNAME per renderlo più amichevole. Per esempio,

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

Spero che aiuti. Fateci sapere se avete altre domande.

Amazon Web Services

Sfortunatamente il tuo CNAME "amichevole" causerà una mancata corrispondenza del nome host durante la convalida del certificato, quindi non puoi davvero usarlo per una connessione sicura. Una grande caratteristica mancante di S3 è l'accettazione di certificati personalizzati per i tuoi domini.


AGGIORNAMENTO DEL 10/2/2012

Da @mpoisot:

Il link fornito da Amazon non dice più nulla su https. Ho cercato nei documenti S3 e finalmente ho trovato una piccola nota a riguardo sulla pagina di hosting virtuale: http://docs.amazonwebservices.com/AmazonS3/latest/dev/VirtualHosting.html


AGGIORNAMENTO 17/06/2013

Da @Joseph Lust:

Capito! Dai un'occhiata e iscriviti per un invito: http://aws.amazon.com/cloudfront/custom-ssl-domains


22
+1 per dare seguito alla tua domanda vinta - informazioni molto utili facilmente trascurate nella documentazione S3!
Steffen Opel,

1
Il link fornito da Amazon non dice più nulla su https. Ho cercato nei documenti S3 e finalmente ho trovato una piccola nota a riguardo nella pagina di hosting virtuale: docs.amazonwebservices.com/AmazonS3/latest/dev/…
mpoisot

4
Si noti che è $ 600 AL MESE. : -o
loneboat

8
Ora è possibile utilizzare il proprio certificato SSL per Cloudfront senza costi aggiuntivi . Quindi la carica di 600 $ / m è sparita.
schickling

4
@schickling Vale anche la pena notare che CloudFront ha apportato questa modifica consentendoti di scegliere tra SNI o Dedicated IP SSL. SSL IP dedicato continua a costare $ 600, ma SNI SSL è gratuito. Assicurati solo che i browser di destinazione siano SNI.
Ryan Pendleton,

111

So che è un anno dopo il fatto, ma l'utilizzo di questo lo risolve: https://s3.amazonaws.com/furniture.retailcatalog.us/products/2061/6262u9665.jpg

Ho visto questo su un altro sito ( http://joonhachu.blogspot.com/2010/09/helpful-tip-for-amazon-s3-urls-for-ssl.html ).


18
non sembra davvero risolverlo. Utilizza ancora il nome di dominio Amazon (s3.amazonaws.com) quindi fa schifo!
themihai,

14
Questo non fa schifo. Sì, il dominio è diverso, ma ti consente di pubblicare contenuti su SSL su un bucket esistente su S3. Senza questo schema, devi creare un bucket solo per i tuoi file forniti da SSL (perché il certificato SSL jolly S3 non corrisponderà a files.yourdomain.com.s3.amazonaws.com): secure-yourdomain.s3.amazonaws.com . Ora hai due secchi da gestire invece di uno. Non è un grosso problema, ma nelle app Web, c'è più complessità di quanto sia assolutamente necessario.
Andrew

7
Ciao, sono in realtà il ragazzo che ha scritto il link di riferimento che hai messo lì "Joonha". Il piccolo gioiello da non perdere sta usando quella tecnica + "//" da solo all'inizio del protocollo. Nella mia attività di sviluppo e-commerce, ci colleghiamo agli URL con "//" invece di "https: // o" http: // "perché non ci dobbiamo mai preoccupare a quel punto.
Jason Sebring,

4
Sembra che non funzioni più, ho ricevuto un errore PermanentRedirect.
Paulo Casaretto,

5
Vedi la mia nuova risposta sul perché questo funziona per alcune persone e non per altre. È importante in quale regione si trovano i tuoi secchi.
Nate,

47

La risposta di payton109 è corretta se ti trovi nella regione US-EAST-1 predefinita. Se il tuo bucket si trova in una regione diversa, utilizza un URL leggermente diverso:

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

Dov'è <region>il nome della posizione del bucket. Ad esempio, se il tuo bucket si trova nella regione us-west-2(Oregon), puoi farlo:

https://s3-us-west-2.amazonaws.com/your.domain.com/some/asset

1
Quando si utilizza un record DNS CNAME si tratta solo della risoluzione del dominio, quindi non è possibile reindirizzare a un URL con un percorso. Vedi anche: stackoverflow.com/questions/32714351/…
Sebastien Lorber

Questo funziona per me ed è la risposta più completa.
Besimple,

2
Questo è buono, ma ignora le regole di hosting di siti Web statici, come le regole di reindirizzamento a index.html
Kim T

Questa è la soluzione perfetta per gli sviluppatori web senza un team devops o sys-admin. Certo, le tue risorse non avranno un dominio elegante, ma quanti clienti controllano l'html o le richieste sottostanti e tsk tsk tsk nell'URL del dominio? Non molti! Ottenere le tue risorse statiche fuori dalla tua applicazione e su S3 è un ottimo primo passo in primo luogo.
stwr667,

8

Come precedentemente affermato, non è direttamente possibile, ma è possibile impostare Apache o nginx + SSL su un'istanza EC2, CNAME il dominio desiderato su quello e invertire proxy sugli URL S3 (dominio non personalizzato).


Un modo per trovare il percorso SSL completo di una risorsa S3 è eseguire il drill down su di esso utilizzando la console AWS. Il percorso completo viene visualizzato nella parte inferiore della scheda Panoramica.
Eric Gilbertson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.