AWSRoute 53CloudFrontACMDNSCustom DomainSSL/TLS

So verwendest du eine mit Amazon Route 53 registrierte Domain mit CloudFront

Sloth255
Sloth255
·8 min read·1,699 words

Einleitung

Um eine mit Amazon Route 53 registrierte Domain mit Amazon CloudFront zu verwenden, prüfst du zuerst die Hosted Zone auf der Route 53-Seite, stellst dann in AWS Certificate Manager (ACM) ein SSL-Zertifikat aus und konfigurierst anschließend die benutzerdefinierte Domain in CloudFront.
In diesem Artikel gehen wir von einer Konfiguration aus, bei der die Origins für die Hauptdomain und die Subdomain unterschiedlich sind, und erklären, wie beide jeweils einer separaten CloudFront-Distribution zugewiesen werden.

Voraussetzungen

Dieser Artikel geht von den folgenden Voraussetzungen aus.

  • Die Hauptdomain und die Subdomain verwenden unterschiedliche Origins
  • Die CloudFront-Distributionen für Hauptdomain und Subdomain werden getrennt betrieben
  • Die grundlegende Konfiguration der CloudFront-Distributionen und ihrer Origins ist bereits abgeschlossen
  • Die Route 53 Hosted Zone wird im selben AWS-Konto verwaltet

Wenn beide dieselbe Origin verwenden, kannst du alternativ auch mehrere alternative Domainnamen (CNAMEs) auf einer einzigen CloudFront-Distribution konfigurieren. Das behandeln wir in diesem Artikel jedoch nicht.

Gesamtüberblick

  1. Domain in Amazon Route 53 kaufen
  2. Automatisch erstellte Hosted Zone in Amazon Route 53 prüfen
  3. SSL-Zertifikat in AWS Certificate Manager (ACM) ausstellen
  4. Benutzerdefinierte Domain in Amazon CloudFront konfigurieren
  5. Record für die Hauptdomain in Amazon Route 53 anlegen
  6. Record für die Subdomain in Amazon Route 53 anlegen
  7. Funktion prüfen

Zusammenspiel von ACM, Route 53 und CloudFront

In dieser Konfiguration verwaltet Amazon Route 53 das DNS, AWS Certificate Manager (ACM) stellt das Zertifikat für HTTPS aus, und Amazon CloudFront ist jeweils der Auslieferungspunkt für die Hauptdomain und die Subdomain.

graph LR
  U[Browser des Nutzers]
  R[Route 53 DNS-Verwaltung]
  CM[CloudFront fuer Hauptdomain]
  CS[CloudFront fuer Subdomain]
  OM[Origin S3 oder Webserver]
  OS[Origin S3 oder Webserver]
  A[ACM SSL/TLS-Zertifikat]

  U -->|Auf example.com zugreifen| R
  U -->|Auf cdn.example.com zugreifen| R
  R -->|A / AAAA Alias| CM
  R -->|A / AAAA Alias| CS
  CM -->|Per HTTPS ausliefern| U
  CS -->|Per HTTPS ausliefern| U
  A -->|Zertifikat zuordnen| CM
  A -->|Zertifikat zuordnen| CS
  CM -->|Inhalte abrufen| OM
  CS -->|Inhalte abrufen| OS

Wichtig ist, dass die DNS-Records in Amazon Route 53 auf die CloudFront-Distributionen für die Hauptdomain und die Subdomain verweisen. Indem du auf jeder Distribution ein ACM-Zertifikat konfigurierst, kannst du HTTPS mit deiner eigenen Domain bereitstellen.

1. Domain in Amazon Route 53 kaufen

Öffne zuerst Amazon Route 53 in der AWS Management Console und kaufe die Domain, die du verwenden möchtest.

Schritte

  1. Öffne im Amazon Route 53-Dashboard "Registered domains" oder "Domain registration"
  2. Suche nach dem Domainnamen, den du registrieren möchtest (Beispiel: example.com)

Bildschirm für die Domainsuche in Route 53

  1. Wenn die Domain verfügbar ist, lege sie in den Warenkorb und fahre mit dem Kauf fort
  2. Gib die Kontaktdaten und die Registrierungsdauer an und schließe den Kauf ab
  3. Öffne die Bestätigungs-E-Mail, die an deine registrierte E-Mail-Adresse gesendet wurde, und klicke auf den Bestätigungslink in der Nachricht
    • Beispiel für den Betreff: Verify your email address.
  4. Öffne in der Amazon Route 53-Konsole "Domains" → "Requests" und prüfe, ob der Status der neu beantragten Domain auf "Successful" steht

Sobald der Kauf abgeschlossen ist, ist nicht nur die Domain registriert, sondern Amazon Route 53 kann auch ihre Nameserver verwalten.

2. Automatisch erstellte Hosted Zone in Amazon Route 53 prüfen

Wenn du eine Domain in Amazon Route 53 registrierst, wird in der Regel automatisch eine öffentliche Hosted Zone mit demselben Namen erstellt. Prüfe zunächst diesen Zustand.

Schritte

  1. Öffne im Amazon Route 53-Dashboard "Hosted zones"
  2. Prüfe, ob es eine Hosted Zone mit demselben Namen wie die gekaufte Domain gibt (Beispiel: example.com)
  3. Prüfe, ob in der Hosted Zone die folgenden Records automatisch erstellt wurden
NS
SOA

Bei Bedarf kannst du auch die in den NS-Records aufgeführten Nameserver prüfen.

ns-xxx.awsdns-xx.com
ns-xxx.awsdns-xx.net
ns-xxx.awsdns-xx.org
ns-xxx.awsdns-xx.co.uk

3. SSL-Zertifikat in AWS Certificate Manager (ACM) ausstellen

Damit die Website per HTTPS erreichbar ist, stellst du in AWS Certificate Manager (ACM) ein SSL-Zertifikat aus.

Schritte

  1. Wechsle die Region zu us-east-1

Bildschirm zur Regionsauswahl in ACM

  1. Klicke in der ACM-Konsole auf "Request a certificate"

Bildschirm zum Anfordern eines Zertifikats in ACM

  1. Wähle "Request a public certificate"

Bildschirm zur Auswahl eines öffentlichen Zertifikats in ACM

  1. Gib im Feld für den Fully Qualified Domain Name die Domainnamen ein, die du verwenden möchtest
    • Wenn du die Hauptdomain verwendest: example.com
    • Wenn du Subdomains verwendest: *.example.com
    • Wenn ein Zertifikat beide abdecken soll: füge sowohl example.com als auch *.example.com hinzu
  2. Wähle als Validierungsmethode "DNS validation"
  3. Klicke auf "Request"

Bildschirm zum Absenden der Zertifikatsanforderung in ACM

DNS-Validierung abschließen

  1. Klicke auf der Detailseite des Zertifikats auf "Create records in Route 53"
  2. Wenn die Route 53 Hosted Zone im selben AWS-Konto verwaltet wird, können die CNAME-Records automatisch erstellt werden
  3. Wenn der automatische Ablauf nicht angezeigt wird, füge die von ACM angezeigten CNAME-Records manuell in Route 53 hinzu
  4. Nach einigen Minuten ist die Validierung abgeschlossen

Nach erfolgreicher Validierung wechselt der Status zu "Issued".

4. Benutzerdefinierte Domain in Amazon CloudFront konfigurieren

Sobald das Zertifikat ausgestellt ist, fügst du die benutzerdefinierte Domain der CloudFront-Distribution hinzu.

Schritte

  1. Wähle in der CloudFront-Konsole die Distribution für die Hauptdomain aus
  2. Klicke auf "Edit"
  3. Füge unter "Alternate domain name (CNAME)" die gewünschte Domain hinzu
    • Füge der Distribution für die Hauptdomain example.com hinzu
  4. Wähle unter "Custom SSL certificate" das zuvor erstellte Zertifikat aus
  5. Klicke auf "Save changes"
  6. Führe anschließend dieselben Schritte auch für die Distribution der Subdomain aus
    • Füge der Distribution für die Subdomain cdn.example.com hinzu
    • Prüfe, ob das verwendete Zertifikat cdn.example.com oder *.example.com enthält
  7. Klicke auf "Save changes"

Warte je Distribution einige Minuten bis etwa 15 Minuten, bis das Deployment abgeschlossen ist.

5. Record für die Hauptdomain in Amazon Route 53 anlegen

Wenn auch example.com auf CloudFront zeigen soll, erstelle A/AAAA-Alias-Records.

Schritte

  1. Klicke in der Detailansicht der Hosted Zone in Amazon Route 53 auf "Create record"
  2. Gib die folgenden Informationen ein:
    • Record name: leer lassen (Root-Domain)
    • Record type: A - IPv4 address
    • Alias: On
    • Route traffic to:
      • Alias to CloudFront distribution
      • Wähle die CloudFront-Distribution für die Hauptdomain
  3. Klicke auf "Create records"
  4. Erstelle auf dieselbe Weise auch einen AAAA - IPv6 address Record

6. Record für die Subdomain in Amazon Route 53 anlegen

Erstelle den Record, der die Subdomain (Beispiel: cdn.example.com) auf CloudFront zeigt.

Schritte

  1. Klicke in der Detailansicht der Hosted Zone in Amazon Route 53 auf "Create record"

Bildschirm zum Erstellen eines Records in Route 53

  1. Gib die folgenden Informationen ein:
    • Record name: Subdomain (Beispiel: cdn)
    • Record type: A - IPv4 address
    • Alias: On
    • Route traffic to:
      • Alias to CloudFront distribution
      • Wähle die CloudFront-Distribution für die Subdomain
  2. Klicke auf "Create records"

Bildschirm nach dem Erstellen eines Records für CloudFront

  1. Erstelle auf dieselbe Weise auch den folgenden Record.
    • Record type: AAAA - IPv6 address
    • Alles andere wie in Schritt 2

7. Funktion prüfen

Sobald alle Einstellungen abgeschlossen sind, rufe die folgenden URLs im Browser auf, um die Funktion zu prüfen.

https://example.com
https://cdn.example.com

Wenn jeweils die Inhalte der erwarteten Origins angezeigt werden, funktioniert das grundlegende Routing.

1. DNS prüfen

Mit den folgenden Befehlen kannst du prüfen, ob die Hauptdomain und die Subdomain auf CloudFront zeigen.

nslookup example.com
nslookup cdn.example.com

Der Domainname von CloudFront selbst wird nicht zurückgegeben, aber du kannst prüfen, ob die Namensauflösung funktioniert und die Alias-Records in Route 53 korrekt konfiguriert sind.

2. HTTPS-Antwort prüfen

Als Nächstes prüfst du, ob HTTPS korrekt antwortet.

curl -I https://example.com
curl -I https://cdn.example.com

Prüfe mindestens die folgenden Punkte.

  • Es wird der erwartete HTTP-Status zurückgegeben, etwa HTTP/1.1 200 OK oder 301 Moved Permanently
  • server: CloudFront ist enthalten
  • Die Weiterleitung erfolgt zum beabsichtigten Ziel

3. Zertifikat und alternative Domainnamen prüfen

Rufe jede URL im Browser auf und prüfe den Zertifikatsinhaber sowie das Schloss-Symbol.

  • Auf example.com tritt kein Zertifikatsfehler auf
  • Auf cdn.example.com tritt kein Zertifikatsfehler auf
  • Es erfolgt keine Weiterleitung auf eine unerwartete Domain

4. Trennung der Origins prüfen

Wenn du für die Hauptdomain und die Subdomain unterschiedliche Origins verwendest, prüfe auch, ob beide tatsächlich auf verschiedene Auslieferungsziele zeigen.

  • Auf https://example.com wird der Inhalt der Origin für die Hauptdomain angezeigt
  • Auf https://cdn.example.com wird der Inhalt der Origin für die Subdomain angezeigt
  • Änderungen auf der einen Seite erscheinen nicht auf der anderen

Fehlerbehebung

Wenn kein Zugriff möglich ist:

  1. Prüfe, ob das CloudFront-Deployment abgeschlossen ist
  2. Prüfe, ob die A/AAAA-Alias-Records in Route 53 korrekt konfiguriert sind
  3. Prüfe, ob die Ziel-Domain unter "Alternate domain name (CNAME)" in CloudFront hinzugefügt wurde
  4. Prüfe, ob das ACM-Zertifikat example.com oder cdn.example.com enthält
  5. Prüfe, ob der Status des ACM-Zertifikats auf "Issued" steht
  6. Prüfe, ob Einstellungen für den Host-Header oder HTTPS-Weiterleitungen auf der Origin-Seite die Ursache sind
  7. Prüfe die DNS-Propagation (nslookup example.com / nslookup cdn.example.com)

Zusammenfassung

In diesem Artikel wurde erklärt, wie du eine mit Amazon Route 53 registrierte Domain mit Amazon CloudFront verwendest. Die wichtigsten Punkte sind:

  • Für eine mit Amazon Route 53 registrierte Domain sind in der Regel keine Änderungen an den Nameservern erforderlich
  • Wenn die Domain Datenschutzschutz unterstützt, kannst du verhindern, dass persönliche Daten in WHOIS veröffentlicht werden
  • Stelle zuerst das ACM-Zertifikat aus und konfiguriere danach die benutzerdefinierte Domain in CloudFront
  • Wenn Hauptdomain und Subdomain unterschiedliche Origins verwenden, ist es übersichtlicher, auch die CloudFront-Distributionen zu trennen
  • Hauptdomain und Subdomain werden jeweils mit eigenen A/AAAA-Alias-Records an CloudFront angebunden
  • Das ACM-Zertifikat muss immer in der Region us-east-1 erstellt werden

Mit dieser Konfiguration sind schnelle Inhaltsauslieferung und flexible DNS-Verwaltung möglich.