Blog

Πώς δημιουργήθηκε αυτός ο ιστότοπος (2) - Domain Names και HTTPS

28/08/2020 | 8 λεπτά διαβάσματος
Κοινοποίηση:

Tags: HTTPS, DNS, tutorial, web-development, Cloudflare, Github Pages

Αυτό είναι το δεύτερο μέρος της σειράς αναρτήσων, που περιγράφει τον τρόπο δημιουργίας αυτού του ιστότοπου. Σε αυτήν την ανάρτηση αναλύω προσαρμοσμένα ονόματα τομέα(custom domain names), DNS και HTTPS. Μπορείτε να βρείτε το πρώτο μέρος εδώ .

Τι έχουμε μέχρι στιγμής

Στο προηγούμενο μέρος, δημιουργήσαμε έναν στατικό ιστότοπο χρησιμοποιώντας το Hugo και τον φιλοξενήσαμε χρησιμοποιώντας το Github Pages. Όταν χρησιμοποιείτε το τελευταίο, μπορείτε να αποκτήσετε πρόσβαση στον δημοσιευμένο ιστότοπο χρησιμοποιώντας μια διεύθυνση URL με τη μορφή github-username.github.io. Για παράδειγμα, το URL του Github Psges αυτού του ιστότοπου είναι ChrisKar96.github.io. Αυτό αρκεί για ιστότοπους που παρουσιάζουν ένα έργο και μοιράζονται τεκμηρίωση σχετικά με αυτό, αλλά ένας προσωπικός ιστότοπος χρειάζεται έναν πιο επαγγελματικό και εύκολο να πληκτρολογείτε και να θυμάστε τη διεύθυνση URL. Επομένως, η επόμενη αποστολή μας είναι να αποκτήσουμε ένα προσαρμοσμένο όνομα τομέα (domain name) που θα χρησιμοποιηθεί για πρόσβαση στον ιστότοπό μας.

Ονόματα τομέα και TLD

Όπως δηλώνει η Wikipedia,

Μια τυπική διεύθυνση URL θα μπορούσε να έχει τη μορφή http://www.example.com/index.html, που υποδεικνύει ένα πρωτόκολλο (http), ένα όνομα κεντρικού υπολογιστή (www.example.com) και ένα όνομα αρχείου (index.html).

Το πρωτόκολλο, όταν μιλάμε για περιήγηση σε ιστοσελίδες, μπορεί να είναι απλό HTTP ή η ασφαλής εναλλακτική HTTPS. Θα το αναλύσουμε περαιτέρω, αργότερα σε αυτό το post.

Το όνομα αρχείου, στην περίπτωσή μας, δείχνει τα αρχεία HTML που δημιουργήσαμε μέσω του SSG μας, τα οποία διατηρούν το περιεχόμενο της ιστοσελίδας.

Τέλος, το όνομα κεντρικού υπολογιστή, μπορεί να αναλυθεί περαιτέρω σε τρία μέρη που χωρίζονται με μια τελεία.

  • Πριν από την πρώτη κουκκίδα έχουμε το subdomain. Ο πιο δημοφιλής υποτομέας είναι το “www”, που αντιπροσωπεύει τον παγκόσμιο ιστό.
  • Μεταξύ των δύο πρώτων κουκκίδων έχουμε τον κύριο τομέα_. Αυτό είναι το όνομα που έχει καταχωριστεί από μια αρχή Σύστημα ονομάτων τομέα (DNS) και πρέπει να ακολουθεί τους κανόνες της.
  • Μετά τη δεύτερη κουκκίδα, έχουμε τον τομέα ανώτατου επιπέδου (TLD). Αυτό συνδυάζεται με τον τομέα στην καταχώριση DNS και χρησιμοποιείται μαζί για να δείξει τη σωστή θέση δικτύου. Με αυτόν τον τρόπο, το example.com και το example.org μπορούν να ανήκουν σε διαφορετικά άτομα και να δείχνουν διαφορετικές τοποθεσίες.

Για να χρησιμοποιήσετε ένα όνομα τομέα, πρέπει πρώτα να το αγοράσετε από έναν καταχωρητή ονόματος τομέα.

Γιατί όμως τα ονόματα τομέα κοστίζουν χρήματα;

Εάν το Facebook και το Instagram σας επιτρέπουν να δημιουργήσετε σελίδες που μοιάζουν με blog, γιατί η κατοχή ενός προσωπικού ονόματος domain κοστίζει χρήματα; Η απάντηση στην παραπάνω ερώτηση δεν είναι ξεκάθαρη στην αρχή, αλλά γίνεται σαφής μόλις το σκεφτείτε λίγο πιο προσεκτικά. Οι διακομιστές και οι συσκευές δικτύου που εκτελούν και επιλύουν ονόματα τομέα, από τους ριζικούς διακομιστές έως τους τελικούς διακομιστές DNS στο Διαδίκτυο, όλοι τους κοστίζουν χρήματα για αγορά, συντήρηση και συνέχιση της λειτουργίας τους. Η αγορά ενός ονόματος τομέα απαιτείται για την κάλυψη του κόστους του υλικού, την ενέργεια για την τροφοδοσία του και τους μισθούς των ατόμων που το συντηρούν. Δεν είναι στην πραγματικότητα το όνομα για το οποίο χρεώνεστε, αλλά για τη χρήση της υποδομής που σας επιτρέπει να το χρησιμοποιήσετε. (Αυτό, φυσικά, είναι μια υπερβολική απλοποίηση, αλλά δεν εμπίπτει στο πεδίο αυτής της ανάρτησης να εξηγηθούν οι πολλοί περισσότεροι λόγοι για τους οποίους τα ονόματα τομέα κοστίζουν χρήματα.)

Επιπλέον, πολλοί πάροχοι φιλοξενίας έχουν συνδυάσει την αγορά ενός ονόματος domain με ένα πακέτο φιλοξενίας. Είναι πραγματικά λογικό αν το σκεφτείτε: η συντριπτική πλειοψηφία δεν θα χρησιμοποιήσει ιδιωτικούς αποκλειστικούς διακομιστές για να φιλοξενήσει έναν ιστότοπο - θα χρειαστούν ούτως ή άλλως φιλοξενία! Έτσι, οι πάροχοι φιλοξενίας αξιοποιούν αυτό αγοράζοντας τα ονόματα domain μαζικά από τους καταχωρητές και στη συνέχεια διαφημίζουν τα πακέτα φιλοξενίας τους ως συμπεριλαμβανομένου ενός δωρεάν τομέα. Στην πραγματικότητα, η τιμή του πακέτου υπολογίζεται και προσαρμόζεται ώστε να περιλαμβάνει το κόστος του τομέα, καθώς και το κόστος χρήσης του πίνακα ελέγχου που δημιούργησε ο πάροχος φιλοξενίας για να χρησιμοποιήσετε και να διαχειριστείτε τις υπηρεσίες που αγοράσατε.

Υπάρχουν δωρεάν domains;

Καλύψαμε παραπάνω γιατί πρέπει να πληρώνονται τα ονόματα τομέα και μία επιλογή για να αποκτήσετε ένα δωρεάν, δηλαδή αγοράζοντας ένα πρόγραμμα φιλοξενίας. Είναι όμως η μόνη σας επιλογή για έναν δωρεάν domain; Ευτυχώς όχι! Υπάρχουν ορισμένα TLD που μπορείτε να χρησιμοποιήσετε δωρεάν, που προσφέρονται από το Freenom. Το OpenTLD με έδρα το Άμστερνταμ, που λειτουργεί με την επωνυμία Freenom, σας επιτρέπει να εγγράψετε τομείς .tk, .ml, .ga, .cf και .gq χωρίς καν να υποβάλετε στοιχεία χρέωσης. Ισχύουν, φυσικά, ορισμένοι κανόνες και δεν είναι όλα δωρεάν, αλλά μπορείτε να μάθετε περισσότερα σχετικά με αυτούς εδώ. Ένα ερώτημα που προκύπτει όμως! Εάν πρέπει να πληρώνονται τα ονόματα τομέα για το πώς μπορεί η Freenom να τα δώσει δωρεάν; Για να απαντήσουμε σε αυτό, ας δούμε από πού προέρχονται αυτά τα TLD:

TLDΑντίστοιχη χώρα ή έδαφος
.tkΤο Τοκελάου αποτελείται από τρία νησιά κοραλλιών στον Ειρηνικό Ωκεανό. Παρόλο που ο πληθυσμός του είναι περίπου 1500 άτομα, σύμφωνα με μια ανάλυση του 2016, τα domains .tk αποτελούν το «μεγαλύτερο domain κωδικού χώρας στον κόσμο - σχεδόν τόσο μεγάλος όσο και οι κάτοχοι δεύτερης και τρίτης θέσης σε συνδυασμό Κίνα (.cn) και Γερμανία (.de)». Οι εγγραφές τομέων .tk έχουν αυξήσει το ΑΕΠ του κατά περισσότερο από 10%.
.mlΤο Μάλι είναι μια χερσαία χώρα στη Βορειοδυτική Αφρική με ποσοστό 10% χρήσης Διαδικτύου σε ολόκληρο τον πληθυσμό των 20 εκατομμυρίων.
.gaΗ Γκαμπόν είναι ένα μικρό έθνος στη δυτική ακτή της Αφρικής, με πληθυσμό 2,1 εκατομμύρια, περίπου το ένα τρίτο των οποίων ζει σε συνθήκες φτώχειας.
.cfΗ Κεντροαφρικανική Δημοκρατία είναι μια χώρα όπου μόνο το 4% των κατοίκων έχει τακτική πρόσβαση στο Διαδίκτυο.
.gqΗ Ισημερινή Γουινέα είναι μια μικρή αφρικανική χώρα όπου η κυβέρνηση συγκεντρώνει όλα τα κέρδη από την εκμετάλλευση των πλούσιων αποθεμάτων πετρελαίου της.

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

Εγγραφή δωρεάν ονόματος domain στη Freenom

Οι εγγραφές μπορούν να είναι είτε δωρεάν, οπότε ο χρήστης κατέχει μόνο δικαιώματα χρήσης και όχι τον ίδιο τον τομέα, είτε έχει πληρωθεί, το οποίο παρέχει πλήρη δικαιώματα. Οι ελεύθεροι τομείς κατευθύνονται στους διακομιστές ονομάτων Freenom, οι οποίοι ανακατευθύνουν τον τομέα μέσω πλαισίων HTML σε μια καθορισμένη διεύθυνση ή σε μια καθορισμένη εγγραφή A ή NS και υποστηρίζουν την ανακατεύθυνση έως και 250 διευθύνσεων email σε μια εξωτερική διεύθυνση.

Εγγραφή domain Freenom

Μετά την εγγραφή ενός τομέα, μπορούμε να το δούμε στο υπομενού “My Domains” του “Services”, στο λογαριασμό μας στη Freenom. Η Freenom δεν προσφέρει έναν πίνακα ελέγχου με πολλές δυνατότητες για τη διαχείριση των τομέων μας, οπότε αν θέλουμε να αξιοποιήσουμε στο έπακρο τον τομέα μας (και το θέλουμε!), πρέπει να το διαχειριστούμε μέσω διαφορετικής υπηρεσίας.

Διαχείριση DNS μέσω Cloudflare

Η Cloudflare είναι μια εταιρεία διαδικτυακής υποδομής και ασφάλειας ιστότοπων, η οποία παρέχει υπηρεσίες content-delivery-network, DDoS mitigation, Ασφάλειας Διαδικτύου και κατανεμημένου domain-name-server.

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

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

DNS

Πρόσθεσα τις 4 A εγγραφές που χρειάζεται το Github Pages για έναν προσαρμοσμένο τομέα (περισσότερα σε αυτό αργότερα). Αυτές είναι οι 4 διευθύνσεις IP που πρέπει να επισημανθούν, από τη ρίζα του τομέα σας.

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

Πρόσθεσα επίσης μια εγγραφή www τύπου CNAME που δείχνει στη ρίζα του τομέα.

SSL / TLS

Ο απλός τρόπος για να έχετε συνδέσεις https, είναι να ενεργοποιήσετε τη λειτουργία κρυπτογράφησης «Πλήρης» SSL / TLS. Η λειτουργία “Πλήρης (Αυστηρή)” είναι πιο δύσκολη να ρυθμιστεί στις σελίδες Github και δεν βλέπω κανένα πραγματικό πλεονέκτημα για την επιπλέον εργασία.

Στο υπομενού “Edge Certificates” έχω επιλέξει τις ακόλουθες επιλογές:

  • Always Use HTTPS - ON
  • Minimum TLS Version - 1.2 (Οι προηγούμενες εκδόσεις TLS, καθώς και οι εκδόσεις SSL, έχουν ευπάθειες ασφαλείας. Με κόστος ορισμένες παλαιότερες συσκευές να μην μπορούν να συνδεθούν, αυτός είναι ο καλύτερος συμβιβασμός μεταξύ ασφάλειας και προσβασιμότητας.)
  • Opportunistic Encryption - ON
  • TLS 1.3 - ON
  • Automatic HTTPS Rewrites - ON

Speed

Στο υπομενού ‘Optimization’:

  • Auto Minify - All Checked (Να είστε προσεκτικοί όταν ελαχιστοποιείτε αρχεία CSS και JS, εάν συμπεριλάβατε τον κατακερματισμό τους στο χαρακτηριστικό “ακεραιότητα” html, αυτό θα μπορούσε να τους κάνει να μην μπορούν να φορτώσουν.)
  • Brotli - ON
  • Rocket Loader - ON

Caching

Στο υπομενού ‘Configuration’:

  • Caching Level - Standard
  • Browser Cache TTL - 1 year
  • Always Online - ON

Network

  • HTTP/2 - ON
  • HTTP/3 (with QUIC) - ON
  • 0-RTT Connection Resumption - ON
  • IPv6 Compatibility - ON
  • WebSockets - ON
  • Onion Routing - ON

Scrape Shield

  • Email Address Obfuscation - ON
  • Server-side Excludes - ON

Είναι σαφές ότι το cloudflare προσφέρει πολλές χρήσιμες λειτουργίες, ακόμη και στους δωρεάν χρήστες, και η διαμόρφωση αυτών που θέλετε είναι τόσο εύκολη όσο το πάτημα ενός διακόπτη ON/OFF.

Προσαρμοσμένο domain για σελίδες Github Pages

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

Με λίγα λόγια, πρέπει να μεταβείτε στις ρυθμίσεις αποθετηρίου και να προσθέσετε τον προσαρμοσμένο τομέα που θέλετε π.χ. “www.christoskaramo.tk” στο αντίστοιχο πεδίο φόρμας, στην ενότητα Σελίδες Github, αφού προσθέσετε τις εγγραφές Α που αναφέρθηκαν προηγουμένως στη διαμόρφωση DNS.

Ανακεφαλαίωση

Μιλήσαμε για ονόματα τομέα, πώς μπορούμε να αποκτήσουμε ένα δωρεάν και τους λόγους που το επιτρέπουν. Μιλήσαμε επίσης για τη δημιουργία ενός λογαριασμού Cloudflare για τη διαχείριση του ονόματος τομέα μας και για να το κάνουμε να δείχνει στο Github Pages. Εάν ακολουθήσατε τα βήματα, θα πρέπει να έχετε ένα όνομα τομέα που να δείχνει στην ιστοσελίδα σας μέσω HTTPS. Συγχαρητήρια!

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