2014-07-21 15 views
10

Ich bin im Begriff, eine statische Website mit S3/Cloudfront zu starten. Ich brauche kein HTTPS für die Site, aber die aktuelle Iteration der Website wird über HTTPS bereitgestellt und hat Hunderte von Links und indizierten URLs, die HTTPS sind.Amazon S3 statische Website - HTTPS zu HTTP umleiten

Ich habe stundenlang gesucht und finde keine Möglichkeit, unsere HTTPS-URLs auf HTTP umzuleiten, wenn nur S3/Cloudfront verwendet wird. Derzeit verweigert die HTTPS-URL die Verbindung, anstatt auf die HTTP-Version der Seite umzuleiten.

Ohne Apache scheint es nicht möglich zu sein. Irgendwelche Hinweise?

Antwort

19

Statisches Website-Hosting unter S3 unterstützt HTTPS nur, wenn Sie den vollständigen Domänenpfad verwenden, d. H. example.com.s3-website-us-east-1.amazonaws.com. Da Sie Ihre URL beibehalten möchten, müssen Sie eine CloudFront-Distribution verwenden, um mit SSL zu arbeiten.

  1. Laden Sie Ihr SSL-Zertifikat 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. Erstellen Sie eine Cloudfront Verteilung und Konfiguration wie so:

    • Herkunft Domain Name: Ihr s3 Eimer
    • Alternative Domain-Namen (CNAMEs): gewünschter Standort für Ihre Website, z example.com oder www.example.com
    • SSL-Zertifikat: das SSL-Zertifikat, das Sie 1.
    • benutzerdefinierten SSL-Client-Unterstützung in Schritt hochgeladen wählen: Wenn Sie die Kompatibilität für wirklich alte Kunden benötigen, wählen Sie „Nur Clients unterstützen Server Name Indication "und sparen $ 600.

    Wenn Sie https umleiten Umleitung auf s3, sollte die Ursprungsdomäne nicht zur automatischen Vervollständigung Eimer sein, aber die statische Umleitung Endpunkt s3 gibt Ihnen

  3. Distribution speichern. Es sollte den Status "In Bearbeitung" anzeigen. Es dauert in der Regel ~ 15 Minuten, bevor eine Distribution "Bereitgestellt" wird; Fahren Sie nicht mit Schritt 4 fort, bis Ihre Distribution "Bereitgestellt" ist.

  4. Überprüfen Sie, ob die Verteilung funktioniert: Navigieren Sie zur CloudFront-Verteilung über den Domänennamen in der Liste, z. "https // d111111abcdef8.cloudfront.net /". Sie sollten Ihre Website sehen.
  5. Ändern Sie Ihre DNS-Einträge so, dass sie auf die CloudFront-Verteilung anstelle des S3-Buckets zeigen.

[1], wenn Sie Probleme beim Hinzufügen Ihres Zertifikats Cloudfront für weitere Informationen in diesen Artikel überprüfen haben: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html#cnames-and-https-procedure

+1

Dies wird wahrscheinlich der praktikabelste Ansatz ist ohne einen eigenen Server oder Proxy, da einen HTTPS-Server bereitstellen Nicht einmal * sehe * die eingehende Anfrage (um sie umleiten zu können), es sei denn, das Zertifikat ist gültig oder der Benutzer umgeht die Sicherheitswarnung. Cloudfront mit SNI leitet die https-Links nicht zu http um, aber sie funktionieren bei den meisten Browsern wie https. –

+10

Hey Leute, ich hatte ein ähnliches Problem, wo ich Apex http zu https umleiten wollte, mit einem ALIAS einen Datensatz zu s3 Redirect, hatte aber Probleme, wenn der Benutzer manuell versucht, einen Apex https einzugeben. Also habe ich diese Schritte ausgeführt, um meine SSL auf einer CF zu installieren, bekam aber "Zugang verweigert", wenn ich diese Lösung versuchte.Ich habe es schließlich herausgefunden, indem ich Schritt 2 geändert habe. Die Ursprungsdomäne sollte nicht der Autocomplete-Bucket sein, sondern der statische Umleitungsendpunkt s3. –

+1

Kann überprüfen, ob diese Einrichtung funktioniert, und Sie können eine Apex-Domäne so konfigurieren, dass sie sowohl für http: // als auch für https: // mit S3 Static Website Hosting + Redirect All Request umgeleitet wird. Die 2 Änderungen, die ich vornehmen musste, um das Setup zum Laufen zu bringen, war A) @RyanRomanchuks Aufruf, die ** statische Website-Endpunkt-URL ** 'example.com.s3-website-us-east-1 zu verwenden. amazonaws.com' für den Ursprung (lebensretter, ty) und B) Setzen der 'Origin Protocol Policy' auf' HTTP Only'. Vergessen Sie auch nicht, während der Installation auf die Bereitstellung von Einstellungsupdates zu warten und Cache-Invalidierungen zu verwenden, wenn unerwünschte Antworten zwischengespeichert wurden. –

Verwandte Themen