av Georgia Nola
# Enkelt webbhotell med Amazon S3 och HTTPS
Hej gott folk!
I den här handledningen ska jag visa dig hur du är värd för en statisk webbplats med HTTPS på AWS med en anpassad domän. Allt detta är möjligt med hjälp av AWS gratis nivå
De tjänster vi kommer att använda medför dock några små avgifter. Generellt sett bör dessa inte överstiga 1 USD/månad
Vi kommer att använda en kombination av följande AWS-tjänster:
âÃÂÃÂS3
âÃÂàRoute53
âÃÂàCertifikatansvarig
âÃÂàCloudFront
*Låt oss komma in i det!*
Ställ in dina S3-skopor
Först behöver du
**två S3-hinkar båda ska matcha ditt anpassade domännamn med den andra inklusive www-underdomänen
Hink 1:
Hink 2:
Den första hinken (mywebsite.com) är den viktigaste hinken för din webbplats. Detta innehåller alla dina filer och tillgångar för din statiska webbplats
Därefter ställer vi in den här hinken för statisk webbhotell. Du kan hitta detta under fliken Egenskaper i hinken, och vi kommer att behålla standardinställningarna här med webbplatsens index satt till index.html
Vi måste också göra denna bucket tillgänglig eftersom en användares webbläsare kommer att behöva få åtkomst till bucket-filerna för att kunna rendera webbplatsen. Vi kan göra detta genom att ställa in en Bucket Policy under fliken Behörigheter
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal":"Action": "s3:GetObject", "Resurs": "MY_BUCKET_ARN"} ]}
Detta är en enkel policy som endast tillåter offentlig läsåtkomst av objekt i hinken. Nu, om du går till slutpunkten som definieras i den statiska värdkonfigurationen för hinken, bör du se din webbplats
Framsteg! Men vi kan bättre än så
Den andra hinken (www.mywebsite.com) lämnar vi tom men konfigurerar för att omdirigera till vår första hink med HTTP som protokoll (vi gör det till HTTPS senare)
Dina hinkar är nu redo att gå!
Konfigurera domäner med Route53
Så din webbplats är igång men endast tillgänglig via bucket endpoint och inte din anpassade domän. Låt oss ändra på det
Bege dig till
**Route53 Om du har registrerat din domän hos Amazon Registrar bör du se att en värdzon har konfigurerats för dig med två rekorduppsättningar. En för Name Server (NS) och en för SOA
Allt vi behöver göra är att skapa ytterligare två postuppsättningar för att peka på S3-hinkens slutpunkter
För varje rekorduppsättning:
âÃÂàTyp: A âÃÂàIPv4-adress
âÃÂàAlias: Ja
âÃÂàAlias Target: S3-webbplatsens slutpunkt som matchar det du ställer in för Namn
Nu kan vi gå till den anpassade webbadressen och voilÃÂÃÂ !
Vi är nästan där, men det är en sista sak vi saknar. ÃÂæ
**Obs! Om din domän är registrerad hos en annan domänregistrator (inte Amazon) måste du följa några olika steg för att ställa in detta. Vanligtvis måste du lägga till en CNAME-post med värdet för S3-hink-slutpunkten. **Felsökning
Om du tog bort den värdzon som Amazon skapade när du först registrerade domänen (jag har gjort detta eftersom värdzoner medför vissa avgifter) måste skapa en ny värdzon från början
- Välj âÃÂÃÂCreate Hosted ZoneâÃÂàoch ange domännamnet, till exempel âÃÂÃÂmywebsite. comâÃÂÃÂ
– Detta kommer att generera några nya rekorduppsättningar för typerna NS och SOA
- Gå in på din registrerade domän och uppdatera namnservrarnas värden till de som genereras i den nya NS-postuppsättningen
Begär ett certifikat
Fantastiskt, sidan är nu värd med den anpassade webbadressen! Men vi kan bara komma åt det via HTTP-protokoll
Vi bör alltid se till att våra webbplatser är säkrade med HTTPS-protokoll. Detta skyddar vår webbplats och användare från skadliga injektionsattacker och garanterar äkthet
Bege dig till
**Certificate Manager** i AWS Console och begär ett nytt offentligt certifikat (detta är gratis). Du kommer att uppmanas att ange de domännamn du vill säkra
Innan certifikatet kan utfärdas måste Amazon kunna verifiera att du äger de angivna domänerna
Du kan välja mellan två verifieringsmetoder: E-post eller DNS
E-post är i allmänhet enklare, men du måste se till att du kan komma åt e-postmeddelandet som används för att registrera domänen. Alternativt, om du använde Amazon Registrar och Route53, kan du välja DNS-metoden. Detta kräver att du lägger till några specifika postuppsättningar till den värdade zonen, men detta är mestadels automatiserat för dig så det är ganska enkelt
Det kan ta några minuter för certifikatet att utfärdas efter validering
När allt är klart kan vi fortsätta till det sista steget!
Konfigurera CloudFront
För det sista steget kommer vi att använda
**CloudFront **som tillåter oss att använda det nya SSL-certifikatet för att betjäna webbplatsen med HTTPS. CloudFront påskyndar också distributionen av webbinnehåll genom att lagra det på flera kantplatser och leverera från den närmaste kantplatsen till en användare
Vi behöver
**två nya webbdistributioner en för varje S3-hink. Gå till CloudFront i AWS-konsolen och skapa den första webbdistributionen
Det finns många inställningar tillgängliga för att skapa en webbdistribution, men för grunderna behöver vi bara ändra fem:
Ursprungsdomännamn: Ställ in detta på S3-webbplatsens slutpunkt för en av hinkarna. Viktigt: Det här fältet ger dig några alternativ för automatisk komplettering med dina S3-hinknamn. Men att använda dessa kan orsaka problem med omdirigering till bucket endpoint. Så använd istället bucket endpoint direkt. Ursprungs-ID: Detta fylls i för dig när du anger ursprungsdomännamn. Viewer Protocol Policy: Ställ in på âÃÂÃÂOmdirigera HTTP till HTTPSâÃÂÃÂ. Alternativa domännamn: Detta bör matcha namnet på S3-hinken du pekar på. Till exempel âÃÂÃÂmywebsite.comâÃÂÃÂ. SSL-certifikat: Välj âÃÂÃÂCustom SSL CertificateâÃÂàoch välj ditt nya certifikat från rullgardinsmenyn
Gör detta igen för den andra S3-hinken
Distributionerna kan ta ett tag att snurra upp, så medan vi väntar, låt oss göra de avslutande stegen
Tillbaka in
**S3 gå till din sekundära bucket (www.mywebsite.com), på fliken Egenskaper och under Static Website Hosting ställ in omdirigeringsprotokollet till HTTPS
Slutligen, gå tillbaka till
**Route53 Vi måste uppdatera de anpassade A-poster vi skapade för att nu rikta in CloudFront-distributionerna snarare än S3-buckets. För varje post ändrar du Alias Target och väljer CloudFront-distributionen som är tillgänglig i rullgardinsmenyn
Obs: Återigen, om du använder en annan DNS-tjänst måste du uppdatera CNAME-posten därifrån för att peka på CloudFront-domännamnet
Och där har du det! Din vackra webbplats är nu tillgänglig på den anpassade domänen och serveras med HTTPS!
Tack för att du läser! Jag hoppas att den här guiden var användbar och njutbar, jag skulle gärna vilja veta om du tyckte att den var till hjälp.