HTTPS per il sito web statico di Amazon S3 [chiuso]


90

Voglio ospitare un sito Web statico solo HTTPS utilizzando Amazon S3 e CloudFront. Ecco cosa ho fatto finora:

  1. Imposta un bucket S3 per l'hosting di siti Web statici e inseriscici i file del mio sito Web
  2. Ha creato una distribuzione CloudFront e l'ha indirizzata al bucket S3
  3. Aggiunto un record CNAME nei server dei nomi del mio dominio per il wwwsottodominio che punta al bucket CloudFront.

Fin qui tutto bene: posso accedere al mio sito Web utilizzando l' www.example.comindirizzo. Tuttavia, desidero che il sito sia disponibile solo tramite HTTPS, per il quale ho acquistato un certificato SSL da GoDaddy.

Ora, la domanda è:

  1. C'è un modo per installare questo certificato SSL di terze parti sul mio sito web ospitato da S3?
  2. C'è un modo per avere un reindirizzamento automatico da http a https con questa configurazione?

1
Posso farlo gratuitamente?
Piyush S. Wanare

Puoi ottenere un certificato SSL da Amazon gratuitamente e si rinnova automaticamente. aws.amazon.com/certificate-manager Scorri verso il basso fino all'icona del simbolo del dollaro :)
Costa

1
Voto per chiudere questa domanda come fuori tema perché non riguarda la programmazione
Zach Saucier

1
Perché non spostare la domanda in ServerFault?
nu everest

@nueverest Perché è troppo vecchio per migrare.
gre_gor

Risposte:


63

Sì, da oggi puoi farlo gratuitamente.

Ora puoi utilizzare HTTPS con CNAME su CloudFront poiché ora supporta certificati SSL personalizzati utilizzando l'indicazione del nome del server (SNI): http://aws.typepad.com/aws/2014/03/server-name-indication-sni-and- http-redirection-for-amazon-cloudfront.html

Sono riuscito a configurare un certificato StartSSL di classe 1 gratuito per il mio sito statico distribuito CloudFront su S3 senza troppi problemi (vedi: Errore CloudFront durante la pubblicazione su HTTPS utilizzando SNI ).


7
Guida dettagliata: bryce.fisher-fleig.org/blog/…
elado

3
Feedback: la guida di Bryce Fisher è stata molto buona.
tresf

6
C'è una sottigliezza qui. Puoi avere HTTPS per un bucket S3 se non è configurato per l'hosting di siti Web . Vedere la nota che dice "Gli endpoint del sito Web non supportano https".
skeller88

6
OK, per superare la "sottigliezza" e descrivere in un inglese semplice, ecco la mia possibilità. Un bucket S3 con contenuto di una pagina web statica (html) può essere trasformato in un sito web con pochi clic. Questo sito web può utilizzare solo http. Se desideri https, devi utilizzare il servizio Cloudfront di AWS e configurarlo affinché SNI ottenga https gratuitamente. (Alcuni browser molto vecchi o strani non supportano SNI.) L'html e altre risorse possono essere archiviate su S3 a basso costo. Inoltre, se ottieni il nome di dominio da AWS, devi utilizzare il loro servizio Elastic Load Balance. Le tariffe sono di pochi centesimi per concerto.
Mike_Laird

5
Trovo sorprendente che questa risposta sia stata premiata con la risposta giusta, quando semplicemente non risponde alla domanda: come affermato da @ skeller88, s3 https non funziona per l'hosting di siti web.
abbood

36

Il 21 gennaio 2016 AWS ha lanciato AWS Certificate Manager , un servizio gratuito che ti consente di emettere un certificato SSL da utilizzare con Elastic Load Balancer e Cloud Front (insieme a S3).

Puoi saperne di più su: https://aws.amazon.com/certificate-manager/

E puoi controllare come distribuire il tuo sito Web S3 + Cloudfront con SSL gratuito da AWS su: https://aws.amazon.com/blogs/aws/new-aws-certificate-manager-deploy-ssltls-based-apps-on -aws /


1
L'ho appena impostato per il mio sito questa mattina. È un sito statico ospitato in s3. E 'stato super- facile. Sono semplicemente andato al gestore acm, ho richiesto un certificato, ho messo in giro le mie impostazioni di posta elettronica per alcune ore (ho finito per rendere pubbliche le mie informazioni WHOIS mentre aspettavo l'e-mail di conferma), quindi ho impostato route53 in modo che punti all'endpoint cloudfront . Molto felice di aver trovato questo commento.
paranoico

1
@paranoid Con questo posso ospitare il mio sito web s3 solo come https?
Piyush S. Wanare

1
@ PiyushS.Wanare sì, puoi!
barbolo

Inserisci il collegamento HTTPS nel record CNAME in Route53.
Costa

@paranoid non è sicuro di cosa intendi per "endpoint cloudfront" .. da dove ottengo queste informazioni?
abbood

17

Ad oggi, Cloudfront offre SSL personalizzato: http://aws.amazon.com/cloudfront/pricing/

Tieni presente che fanno pagare $ 600 al mese. Maggiori dettagli sul link sopra.


7
600 / mese ......
Pacerier

11
Paghi solo $ 600 se desideri un indirizzo IP dedicato. Se sei felice di utilizzare SNI (che non è supportato dai browser meno recenti), non si applicano costi aggiuntivi
Martin OConnor

2
Se sei disposto a supportare solo i browser moderni (tramite SNI), ora è molto più economico: aws.amazon.com/about-aws/whats-new/2014/03/05/…
Andrew Newdigate

Questo è GRATIS ora! aws.amazon.com/certificate-manager Scorri verso il basso fino all'icona del segno di dollaro. Inoltre penso che si rinnovino automaticamente. E la configurazione è facile come inserire i domini desiderati nel certificato e fare clic sul collegamento di convalida nell'e-mail che segue.
Costa

3

Per me ho dovuto caricare un semplice sito Web React su S3. Come descrive barbolo è necessario un certificato per accedere al sito tramite SSL. Se il sito statico che desideri distribuire è abbastanza semplice, puoi:

  1. Carica su S3.
  2. Do Non selezionare "Static Spazio Web"
  3. Converti tutti i collegamenti relativi (in css, js, ecc.) In collegamenti assoluti.

ad esempio da /css/media.css dovresti convertirlo in https://s3-region-amazonaws.com/bucket-name/css/media.css (per me ho dovuto cambiare solo i collegamenti in index.html)

  1. Rendi pubblici solo i contenuti del bucket.

Questo è tutto. È possibile accedere al file di indice tramite https.

Un sito semplice è un sito con un file index.html principale che punta ad alcune pagine css e js.


Eccezionale. Grazie
user1874634

Se la tua app è destinata alla produzione, questa è una cattiva idea.
Sébastien

sébastien per favore condividi con noi maggiori dettagli sul perché questa è una cattiva idea. Diamo accesso pubblico in lettura agli oggetti non al bucket.
alexopoulos 7

È un modo efficace e più semplice, ma ricorda, per ogni singolo file nella tua applicazione la richiesta viaggerà su Internet, il che ridurrà le prestazioni della tua applicazione. L'utilizzo di CloudFront è l'idea migliore in questi scenari.
Nitesh B.

@ NiteshB.CloudFront fa schifo quando devi aggiornare spesso i tuoi oggetti S3
Dustin Sun

0

Oltre alla risposta di @ wikichen.

Da: https://aws.amazon.com/cloudfront/custom-ssl-domains/

Per impostazione predefinita, puoi fornire i tuoi contenuti ai visualizzatori tramite HTTPS utilizzando il nome del dominio di distribuzione CloudFront nei tuoi URL, ad esempio, https://dxxxxx.cloudfront.net/image.jpg .

Se desideri distribuire i tuoi contenuti su HTTPS utilizzando il tuo nome di dominio e il tuo certificato SSL, puoi utilizzare una delle nostre funzionalità di supporto del certificato SSL personalizzato.

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.