Απλή φιλοξενία ιστότοπου με Amazon S3 και HTTPS

Γεια σου λαοί!

Σε αυτό το σεμινάριο θα σας δείξω πώς να φιλοξενήσετε έναν στατικό ιστότοπο με HTTPS στο AWS με έναν προσαρμοσμένο τομέα. Όλα αυτά είναι δυνατά χρησιμοποιώντας το επίπεδο AWS δωρεάν.

Ωστόσο, οι υπηρεσίες που πρόκειται να χρησιμοποιήσουμε συνεπάγονται ορισμένες μικρές χρεώσεις. Σε γενικές γραμμές, αυτά δεν πρέπει να υπερβαίνουν το 1 $ / μήνα.

Θα χρησιμοποιήσουμε έναν συνδυασμό των ακόλουθων υπηρεσιών AWS:

—S3

- Διαδρομή53

- Διαχειριστής πιστοποιητικών

- CloudFront

Ας μπει σε αυτό!

Ρυθμίστε τους κάδους σας S3

Πρώτον, θα χρειαστείτε δύο κάδους S3 , και οι δύο θα πρέπει να ταιριάζουν με το προσαρμοσμένο όνομα τομέα σας με το δεύτερο, συμπεριλαμβανομένου του υποτομέα www.

Κάδος 1:mywebsite.com

Κάδος 2:www.mywebsite.com

Ο πρώτος κάδος (mywebsite.com) είναι ο κύριος κάδος για τον ιστότοπό σας. Περιέχει όλα τα αρχεία και τα στοιχεία σας για τον στατικό ιστότοπό σας.

Στη συνέχεια ρυθμίζουμε αυτόν τον κάδο για στατική φιλοξενία ιστότοπων. Μπορείτε να το βρείτε στην καρτέλα Ιδιότητες του κάδου και θα διατηρήσουμε τις προεπιλογές που παρέχονται εδώ με το ευρετήριο του ιστότοπου που έχει οριστεί σε index.html.

Πρέπει επίσης να κάνουμε αυτόν τον κάδο προσβάσιμο στο κοινό, καθώς το πρόγραμμα περιήγησης ενός χρήστη θα πρέπει να έχει πρόσβαση στα αρχεία του κάδου για την απόδοση του ιστότοπου. Μπορούμε να το κάνουμε αυτό θέτοντας μια Πολιτική κάδου στην καρτέλα Δικαιώματα.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "MY_BUCKET_ARN" } ]}

Αυτή είναι μια απλή πολιτική που θα επιτρέπει μόνο την πρόσβαση του κοινού για αντικείμενα στο κάδο. Τώρα, εάν κατευθυνθείτε στο τελικό σημείο που ορίζεται στη στατική διαμόρφωση φιλοξενίας του κάδου, θα πρέπει να δείτε τον ιστότοπό σας.

Πρόοδος! Αλλά μπορούμε να κάνουμε καλύτερα από αυτό.

Ο δεύτερος κάδος (www.mywebsite.com) θα αφήσουμε άδειο αλλά θα διαμορφώσουμε για να ανακατευθύνουμε στον πρώτο κάδο μας χρησιμοποιώντας το πρωτόκολλο HTTP (θα το κάνουμε HTTPS αργότερα).

Οι κάδοι σας είναι τώρα έτοιμοι!

Διαμόρφωση τομέων με Route53

Επομένως, ο ιστότοπός σας λειτουργεί και λειτουργεί, αλλά είναι προσβάσιμος μόνο μέσω του τελικού σημείου του κάδου και όχι του προσαρμοσμένου τομέα σας. Ας το αλλάξουμε αυτό.

Προχωρήστε στη Διαδρομή53 . Εάν έχετε καταχωρίσει τον τομέα σας στον Καταχωρητή Amazon, θα πρέπει να δείτε ότι μια φιλοξενούμενη ζώνη έχει ρυθμιστεί για εσάς με δύο σύνολα εγγραφών. Ένα για το Name Server (NS) και ένα για το SOA.

Το μόνο που πρέπει να κάνουμε είναι να δημιουργήσουμε δύο ακόμη σύνολα εγγραφών για να δείξουμε στα τελικά σημεία του κάδου S3.

Για κάθε σύνολο δίσκων:

- Τύπος: A - IPv4 διεύθυνση

- Ψευδώνυμο: Ναι

- Alias ​​Target: το τελικό σημείο του ιστότοπου S3 που ταιριάζει με αυτό που έχετε ορίσει για το Όνομα.

Τώρα μπορούμε να κατευθυνθούμε στο προσαρμοσμένο url… και voilà!

Είμαστε σχεδόν εκεί, αλλά υπάρχει ένα τελευταίο πράγμα που μας λείπει ...

Σημείωση : Εάν ο τομέας σας είναι εγγεγραμμένος σε άλλο καταχωρητή τομέα (όχι Amazon), θα πρέπει να ακολουθήσετε ορισμένα διαφορετικά βήματα για να το ρυθμίσετε. Συνήθως θα πρέπει να προσθέσετε μια εγγραφή CNAME με την τιμή του κύριου τελικού σημείου κάδων S3.

Αντιμετώπιση προβλημάτων :

Εάν διαγράψατε τη φιλοξενούμενη ζώνη που δημιουργήθηκε από το Amazon κατά την πρώτη εγγραφή του τομέα (το έχω κάνει επειδή οι φιλοξενούμενες ζώνες επιβαρύνονται με ορισμένες χρεώσεις), θα πρέπει να δημιουργήσετε μια νέα φιλοξενούμενη ζώνη από το μηδέν.

  1. Επιλέξτε "Δημιουργία φιλοξενούμενης ζώνης" και ορίστε το όνομα τομέα, για παράδειγμα "mywebsite.com"
  2. Αυτό θα δημιουργήσει μερικά νέα σύνολα εγγραφών για τους τύπους NS και SOA.
  3. Μεταβείτε στον καταχωρημένο τομέα σας και ενημερώστε τις τιμές διακομιστών ονομάτων με αυτές που δημιουργούνται στο νέο σύνολο εγγραφών NS.

Αίτημα πιστοποιητικού

Φοβερό, ο ιστότοπος φιλοξενείται τώρα χρησιμοποιώντας το προσαρμοσμένο url! Ωστόσο, μπορούμε να έχουμε πρόσβαση μόνο μέσω του πρωτοκόλλου HTTP.

We should always ensure our sites are secured using HTTPS protocol. This protects our site and users from malicious injection attacks and guarantees authenticity.

Head to Certificate Manager in AWS Console and request a new public certificate (this is free). You’ll be prompted to enter the domain names you wish to secure.

Before the certificate can be issued, Amazon needs to be able to verify that you own the specified domains.

You can choose from two verification methods: Email or DNS.

Email is generally simpler, but you’ll need to ensure you can access the email used to register the domain. Alternatively, if you used Amazon Registrar and Route53, you can select the DNS method. This requires you to add some specific record sets to the hosted zone, but this is mostly automated for you so it’s quite simple.

It can take a few minutes for the certificate to be issued after validation.

When its all done we can continue to the final step!

Configuring CloudFront

For the final step we are going to use CloudFront which allows us to use the new SSL certificate to serve the website with HTTPS. CloudFront also speeds up the distribution of web content by storing it at multiple edge locations and delivering from the closest edge location to a user.

We need two new web distributions, one for each S3 bucket. Head to CloudFront in the AWS Console and create the first web distribution.

There are lots of settings available to create a web distribution, but for the basics we only need to change five:

  1. Origin Domain Name: Set this to the S3 website endpoint for one of the buckets. Important: This field will give you some auto-complete options with your S3 bucket names. However, using these can cause issues with redirecting to the bucket endpoint. So instead use the bucket endpoint directly.
  2. Origin Id: This populated for you when you enter Origin Domain Name.
  3. Viewer Protocol Policy: Set to “Redirect HTTP to HTTPS”.
  4. Alternate Domain Names: This should match the name of the S3 bucket you’re pointing to. For example “mywebsite.com”.
  5. SSL Certificate: Select “Custom SSL Certificate” and select your new certificate from the dropdown.

Do this again for the second S3 bucket.

The distributions can take a while to spin up, so while we wait, let’s do the finishing steps.

Back in S3, go to your secondary bucket (www.mywebsite.com), in the Properties tab and under Static Website Hosting set the redirect protocol to HTTPS.

Finally, head back to Route53. We need to update the custom A records we created to now target the CloudFront distributions rather than the S3 buckets. For each record, change the Alias Target and select the CloudFront distribution available in the dropdown.

Note: Again, if you are using another DNS service you’ll need to go update the CNAME record from there to point to the CloudFront domain name.

And there you have it! Your beautiful website is now available at the custom domain and served with HTTPS!

Ευχαριστώ για την ανάγνωση! Ελπίζω ότι αυτός ο οδηγός ήταν χρήσιμος και ευχάριστος, θα ήθελα πολύ να μάθω αν το βρήκατε χρήσιμο.