HTTPS-Umleitung von einer nackten Domain (example.com) zu einer vollständigen Domain 'www.example.com' ohne Fehler?

10

Ich versuche, Nicht-WWW-Anfragen auf Amazon Route 53 an WWW umzuleiten.

Ich habe einen S3-Bucket mit dem Namen der nackten Domain erstellt und die Bucket-Eigenschaften so konfiguriert, dass sie von example.com zu www.example.com umleiten. Anschließend habe ich in Route 53 einen Alias ​​für den Namen der nackten Domain erstellt, der auf diesen S3-Bucket basiert im Folgenden :

Leiten Sie Nicht-WWW-Anfragen an WWW auf Amazon Route 53 weiter

Es hat super funktioniert, bis auf das HTTPS.

Im Moment kann ich aus irgendeinem Grund nicht auf https://example.com zugreifen .

Jede Hilfe wäre sehr dankbar.

Eki Eqbal
quelle
1
Was ist das Problem, das Sie haben? "aus irgendeinem Grund" beschreibt nichts.
Michael Hampton
Ich versuche, nackten Domain-Verkehr an www zu senden. Ich verwende Amazon Route53 für DNS. Ich habe einen S3-Bucket und einen Alias-Datensatz eingerichtet, um den nackten Domain-Verkehr an www weiterzuleiten. Das funktioniert gut. Das Problem ist, dass der Browser die erforderliche Verbindung zum Server nicht herstellen kann und daher nicht einmal eine HTTP-Anfrage ausgibt, da ich den gesamten Inhalt über https bereitstelle, wenn ich direkt zu example.com gehe . Daher werde ich nicht zur WWW-Domain umgeleitet und stattdessen schlägt die Anfrage fehl.
Eki Eqbal
@MichaelHampton um es zusammenzufassen, hier sind die möglichen Szenarien und Ergebnisse: 1: Geben Sie example.com ein -> erfolgreiche Weiterleitung zu example.com 2: Geben Sie www.example.com ein -> erfolgreiches example.com 3: Geben Sie example.com ein -> ERROR
Eki Eqbal
1
Aber was ist der Fehler?!
Michael Hampton
Der Fehler ist, dass wir nicht einmal auf die Seite zugreifen können. In Chrome wird beispielsweise angegeben, dass der Verbindungsversuch von Google Chrome zu example.com abgelehnt wurde. Die Website ist möglicherweise nicht verfügbar oder Ihr Netzwerk ist möglicherweise nicht ordnungsgemäß konfiguriert.
Eki Eqbal

Antworten:

4

Sie können CloudFront vor Ihren s3-Bucket stellen und CloudFront die SSL-Verbindung beenden lassen. HTTPS ist bei Verwendung von SNI kostenlos.

Schritte:

  • Erstellen Sie eine Distribution und konfigurieren Sie SSL. Der Ursprung ist Ihr Weiterleitungs-Bucket für die S3-Website.
  • Stellen Sie das cnameals Ihre nackte Domain ein
  • Aktualisieren Sie die Route 53, um auf diese Verteilung zu verweisen
imperalix
quelle
Vielen Dank für Ihre Bereitschaft, Menschen zu helfen, da wir in letzter Zeit damit zu kämpfen haben. Können Sie bitte mehr erklären oder zumindest einen Link bereitstellen, um zu zeigen, wie man das implementiert, da es nicht so einfach ist :)
Eki Eqbal
1
stackoverflow.com/a/24876361/1074480 geht gut auf weitere Details ein. Lassen Sie mich wissen, wenn diese Schritte bei Ihnen nicht funktionieren.
imperalix
4

Ganz einfach, Sie können nicht das tun, was Sie mit S3 versuchen, da die von S3 angebotenen S3-Website-Endpunkte https nicht unterstützen.

DNS kann Webbrowser natürlich nicht umleiten, daher hat Amazon eine einfache Lösung, die einen S3-Bucket ohne Inhalt und nur eine pauschale Umleitung zu einer anderen Domain als Hilfsmechanismus nutzt, damit Route 53 die Aufgabe der Umleitung des Browsers ausführen kann Browser.

Die Umleitungsfunktion von Beispiel.com → www.example.com von S3 ist jedoch nur http.

Michael - sqlbot
quelle
Danke für Ihre Hilfe. Gibt es eine Problemumgehung dafür? Ich bin mir sicher, dass ich hier etwas tun kann. Wie wäre es mit einem @imperalix-Kommentar und der Verwendung von CloudFront zum Beenden des s3-Buckets?
Eki Eqbal
@EkiEqbal @imperialix ist korrekt. Sie können Cloudfront verwenden, vorausgesetzt, Ihre Besucher verwenden moderne Browser mit SNI-Funktion. Sie müssten Cloudfront auch so konfigurieren , dass der Host:Header an den Ursprung übergeben wird, und Sie müssten den S3-Website-Endpunkt als benutzerdefinierten Ursprung verwenden, nicht als das, was Cloudfront als "S3-Ursprung" bezeichnet (da dies den nicht trifft Website-Endpunkt).
Michael - sqlbot