von Georgia Nola # Einfaches Site-Hosting mit Amazon S3 und HTTPS Hi Leute! In diesem Tutorial zeige ich Ihnen, wie Sie eine statische Website mit HTTPS auf AWS mit einer benutzerdefinierten Domäne hosten. All dies ist mit dem kostenlosen Kontingent von AWS möglich Für die Dienste, die wir nutzen werden, fallen jedoch einige geringe Gebühren an. Im Allgemeinen sollten diese $1/Monat nicht übersteigen Wir verwenden eine Kombination der folgenden AWS-Services: ÄS3 Route53 âÃÂà Zertifikatsmanager CloudFront *Lass uns darauf eingehen!* Richten Sie Ihre S3-Buckets ein Zuerst müssen Sie **Zwei S3-Buckets sollten beide mit Ihrem benutzerdefinierten Domainnamen übereinstimmen, wobei der zweite die www-Subdomain enthält Eimer 1: Eimer 2: Der erste Bucket (mywebsite.com) ist der Hauptbucket für Ihre Website. Diese enthält alle Ihre Dateien und Assets für Ihre statische Website Als nächstes richten wir diesen Bucket für das statische Site-Hosting ein. Sie finden dies auf der Registerkarte "Eigenschaften"des Buckets, und wir werden die hier bereitgestellten Standardwerte beibehalten, wobei der Index der Site auf "index.html"festgelegt ist Wir müssen diesen Bucket auch zugänglich machen, da der Browser eines Benutzers auf die Dateien des Buckets zugreifen muss, um die Website darzustellen. Wir können dies tun, indem wir eine Bucket-Richtlinie auf der Registerkarte Berechtigungen festlegen { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal":"Action": "s3:GetObject", "Ressource": "MY_BUCKET_ARN"} ]} Dies ist eine einfache Richtlinie, die nur den öffentlichen Lesezugriff auf Objekte im Bucket zulässt. Wenn Sie nun zu dem Endpunkt gehen, der in der statischen Hosting-Konfiguration des Buckets definiert ist, sollten Sie Ihre Website sehen Fortschritt! Aber das können wir noch besser Den zweiten Bucket (www.mywebsite.com) lassen wir leer, konfigurieren ihn aber so, dass er mit HTTP als Protokoll zu unserem ersten Bucket umgeleitet wird (wir machen ihn später zu HTTPS). Ihre Eimer sind jetzt bereit zu gehen! Domänen mit Route53 konfigurieren Ihre Website ist also in Betrieb, aber nur über den Bucket-Endpunkt und nicht über Ihre benutzerdefinierte Domain zugänglich. Lasst uns das ändern Gehen Sie zu **Route53 Wenn Sie Ihre Domain bei der Amazon-Registrierungsstelle registriert haben, sollten Sie sehen, dass eine gehostete Zone mit zwei Datensätzen für Sie eingerichtet wurde. Eine für Nameserver (NS) und eine für SOA Alles, was wir tun müssen, ist, zwei weitere Datensätze zu erstellen, die auf die S3-Bucket-Endpunkte verweisen Für jeden Datensatz: âÃÃà Typ: Eine âÃÂà IPv4-Adresse âàAlias: Ja Alias-Ziel: Der S3-Website-Endpunkt, der mit dem übereinstimmt, was Sie für Name festgelegt haben Jetzt können wir zur benutzerdefinierten URL gehen und voilà! Wir sind fast da, aber es gibt noch eine letzte Sache, die wir vermissen ÃÂæ **Hinweis Wenn Ihre Domain bei einem anderen Domain-Registrar (nicht Amazon) registriert ist, müssen Sie einige andere Schritte befolgen, um dies einzurichten. Normalerweise müssen Sie einen CNAME-Eintrag mit einem Wert des Hauptendpunkts der S3-Buckets hinzufügen. **Fehlerbehebung Wenn Sie die gehostete Zone gelöscht haben, die Amazon erstellt hat, als Sie die Domain zum ersten Mal registriert haben (ich habe dies getan, weil für gehostete Zonen einige Gebühren anfallen), haben Sie Sie müssen eine neue gehostete Zone von Grund auf neu erstellen - Wählen Sie „Create Hosted Zone“ und legen Sie den Domainnamen fest, zum Beispiel „mywebsite“. comâÃÂà- Dadurch werden einige neue Datensätze für die Typen NS und SOA generiert - Gehen Sie zu Ihrer registrierten Domain und aktualisieren Sie die Nameserver-Werte auf die im neuen NS-Eintragssatz generierten Anfordern eines Zertifikats Super, die Seite wird jetzt mit der benutzerdefinierten URL gehostet! Wir können jedoch nur über das HTTP-Protokoll darauf zugreifen Wir sollten immer sicherstellen, dass unsere Websites mit dem HTTPS-Protokoll gesichert sind. Dies schützt unsere Website und Benutzer vor böswilligen Injektionsangriffen und garantiert die Authentizität Gehen Sie zu **Certificate Manager** in der AWS-Konsole und fordern Sie ein neues öffentliches Zertifikat an (dies ist kostenlos). Sie werden aufgefordert, die Domainnamen einzugeben, die Sie sichern möchten Bevor das Zertifikat ausgestellt werden kann, muss Amazon verifizieren können, dass Sie Eigentümer der angegebenen Domains sind Sie können zwischen zwei Verifizierungsmethoden wählen: E-Mail oder DNS E-Mail ist im Allgemeinen einfacher, aber Sie müssen sicherstellen, dass Sie auf die E-Mail-Adresse zugreifen können, die zur Registrierung der Domain verwendet wurde. Wenn Sie Amazon Registrar und Route53 verwendet haben, können Sie alternativ die DNS-Methode auswählen. Dazu müssen Sie der gehosteten Zone einige spezifische Datensätze hinzufügen, aber dies ist für Sie größtenteils automatisiert, sodass es ganz einfach ist Es kann einige Minuten dauern, bis das Zertifikat nach der Validierung ausgestellt wird Wenn alles fertig ist, können wir mit dem letzten Schritt fortfahren! Konfigurieren von CloudFront Für den letzten Schritt werden wir verwenden **CloudFront **, das es uns ermöglicht, das neue SSL-Zertifikat zu verwenden, um die Website mit HTTPS bereitzustellen. CloudFront beschleunigt auch die Verteilung von Webinhalten, indem es sie an mehreren Edge-Standorten speichert und vom nächstgelegenen Edge-Standort an einen Benutzer liefert Wir brauchen **zwei neue Web-Distributionen, eine für jeden S3-Bucket. Gehen Sie in der AWS-Konsole zu CloudFront und erstellen Sie die erste Webverteilung Es gibt viele Einstellungen, um eine Webverteilung zu erstellen, aber für die Grundlagen müssen wir nur fünf ändern: Ursprungsdomänenname: Stellen Sie dies auf den Endpunkt der S3-Website für einen der Buckets ein. Wichtig: Dieses Feld bietet Ihnen einige Autovervollständigungsoptionen mit Ihren S3-Bucket-Namen. Die Verwendung dieser kann jedoch Probleme mit der Umleitung zum Bucket-Endpunkt verursachen. Verwenden Sie stattdessen direkt den Bucket-Endpunkt. Ursprungs-ID: Diese wird für Sie ausgefüllt, wenn Sie den Ursprungsdomänennamen eingeben. Viewer-Protokollrichtlinie: Auf „HTTP auf HTTPS umleiten“ festlegen. Alternative Domänennamen: Dies sollte mit dem Namen des S3-Buckets übereinstimmen, auf den Sie verweisen. Zum Beispiel âÃÂÃÃÂmywebsite.comâÃÂÃÂ. SSL-Zertifikat: Wählen Sie „Benutzerdefiniertes SSL-Zertifikat“ und wählen Sie Ihr neues Zertifikat aus der Dropdown-Liste aus Wiederholen Sie dies für den zweiten S3-Bucket Es kann eine Weile dauern, bis die Distributionen hochgefahren sind, also lassen Sie uns, während wir warten, die letzten Schritte erledigen Zurück in **S3 Gehen Sie zu Ihrem sekundären Bucket (www.mywebsite.com), stellen Sie auf der Registerkarte Eigenschaften und unter Statisches Website-Hosting das Umleitungsprotokoll auf HTTPS ein Gehen Sie schließlich zurück zu **Route53 Wir müssen die von uns erstellten benutzerdefinierten A-Einträge aktualisieren, damit sie jetzt auf die CloudFront-Verteilungen statt auf die S3-Buckets abzielen. Ändern Sie für jeden Datensatz das Alias-Ziel und wählen Sie die verfügbare CloudFront-Verteilung in der Dropdown-Liste aus Hinweis: Auch hier gilt: Wenn Sie einen anderen DNS-Dienst verwenden, müssen Sie den CNAME-Eintrag von dort aus aktualisieren, damit er auf den CloudFront-Domänennamen verweist Und da haben Sie es! Ihre schöne Website ist jetzt unter der benutzerdefinierten Domain verfügbar und wird mit HTTPS bereitgestellt! Danke fürs Lesen! Ich hoffe, dieser Leitfaden war nützlich und unterhaltsam. Ich würde gerne wissen, ob Sie ihn hilfreich fanden.