2014-07-21 19 views
10

Sto per avviare un sito Web statico utilizzando S3/Cloudfront. Non ho bisogno di HTTPS per il sito, ma l'iterazione corrente del sito web è servita su HTTPS e ha centinaia di link e URL indicizzati che sono HTTPS.Sito Web statico Amazon S3 - Reindirizzamento HTTPS a HTTP

Ho cercato ore e non riesco a trovare un modo per reindirizzare i nostri URL HTTPS a HTTP quando si utilizza solo S3/Cloudfront. Attualmente l'URL HTTPS rifiuterà la connessione anziché il reindirizzamento alla versione HTTP della pagina.

Senza Apache sembra che non sia possibile farlo. Qualche suggerimento?

risposta

19

L'hosting di siti Web statici su S3 non supporta HTTPS a meno che non si utilizzi il percorso completo del dominio, ad esempio example.com.s3-website-us-east-1.amazonaws.com. Dal momento che desideri mantenere il tuo URL, dovrai utilizzare una distribuzione CloudFront per gestire SSL.

  1. Caricare il tuo certificato SSL a CloudFront: aws iam upload-server-certificate --server-certificate-name CertificateName --certificate-body file://public_key_certificate_file --private-key file://privatekey.pem --certificate-chain file://certificate_chain_file --path /cloudfront/path/ [1]
  2. Creare una distribuzione CloudFront e configurare come così:

    • Origine Domain Name: il vostro S3 secchio
    • Nomi di dominio alternativi (CNAME): posizione desiderata per il tuo sito web, ad es. example.com o www.example.com
    • Certificato SSL: Selezionare il certificato SSL che hai caricato al punto 1.
    • personalizzato SSL supporto client: A meno che non hai bisogno di compatibilità per davvero vecchi clienti, selezionare "Solo i clienti che supporta l'indicazione del nome del server "e salva $ 600.

    Se si reindirizza https a s3 reindirizzare, il dominio di origine non dovrebbe essere il secchio di completamento automatico, ma la statica reindirizzamento endpoint s3 ti dà

  3. Salvare la vostra distribuzione. Dovrebbe mostrare lo stato "In corso". Generalmente occorrono circa 15 minuti prima che una distribuzione sia "Distribuita"; non passare al punto 4 finché la distribuzione non è "Distribuito".

  4. Verificare i lavori di distribuzione: passare alla distribuzione CloudFront tramite il nome di dominio nell'elenco, ad es. "Https // d111111abcdef8.cloudfront.net /". Dovresti vedere il tuo sito web.
  5. Modificare i record DNS in modo che facciano riferimento alla distribuzione CloudFront anziché al bucket S3.

[1] se si hanno problemi di aggiungere il vostro certificato per CloudFront leggi questo articolo per ulteriori informazioni: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html#cnames-and-https-procedure

+1

Questo è probabilmente l'approccio più praticabile senza distribuire il proprio server o proxy, dal momento che un server HTTPS sarà nemmeno * vedere * la richiesta in entrata (per poterlo reindirizzare) a meno che il certificato sia valido o l'utente ignori l'avviso di sicurezza. Cloudfront with SNI non reindirizzerà i link https a http, ma li farà funzionare come https, per la maggior parte dei browser. –

+10

hey guys, ho avuto un problema simile in cui volevo reindirizzare l'http apex a https, usando un ALIAS un record per reindirizzare s3, ma stavo avendo problemi quando l'utente tentava manualmente di digitare un https dell'apice. Quindi ho seguito questi passaggi per installare il mio ssl su un CF, ma ho trovato "accesso negato" quando ho provato questa soluzione.Alla fine ho capito modificando il punto 2. Il dominio di origine non dovrebbe essere il bucket di completamento automatico, ma l'endpoint di reindirizzamento statico s3. –

+1

Può verificare che questa impostazione funzioni e consente di configurare un dominio dell'apice per reindirizzare sia per http: // che per https: // utilizzando S3 Hosting sito Web statico + Reindirizza tutte le richieste. Le 2 modifiche che dovevo fare per far funzionare la configurazione era A). La chiamata di @RyanRomanchuk per utilizzare l'URL dell'endpoint del sito Web ** ** esempio.com.s3-website-us-east-1. amazonaws.com' per l'origine (lifesaver, ty) e B) L'impostazione della politica del protocollo di origine è "Solo HTTP". Inoltre, durante l'installazione, ricordare di attendere gli aggiornamenti delle impostazioni per la distribuzione e utilizzare le invalidazioni della cache se le risposte indesiderate sono state memorizzate nella cache. –

Problemi correlati