Ενότητα 4 · 4.1
https και σωστή ανακατεύθυνση
Ενότητα 4: Ταχύτητα, κινητά και https · Χρόνος ανάγνωσης: 11 λεπτά
Στόχος μαθήματος: Μετά από αυτό το μάθημα μπορείτε να εξηγήσετε γιατί το https μετράει για τις μηχανές αναζήτησης και τους επισκέπτες, να περιγράψετε τη διαφορά μεταξύ μόνιμης και προσωρινής ανακατεύθυνσης και να ελέγξετε ότι όλες οι παραλλαγές της διεύθυνσής σας καταλήγουν με ένα βήμα στην ίδια σελίδα https.
Βασικές έννοιες: https, πιστοποιητικό, ανακατεύθυνση (redirect), 301 και 308 (μόνιμη), 302 και 307 (προσωρινή), αλυσίδα ανακατευθύνσεων, προτιμώμενη διεύθυνση, με www ή χωρίς www, HSTS, μικτό περιεχόμενο
Τέσσερις διευθύνσεις για μία αρχική σελίδα
Όταν πληκτρολογείτε το όνομα ενός website στη γραμμή διευθύνσεων, το πρόγραμμα περιήγησης μπορεί να καταλήξει σε τέσσερα σημεία:
| Παραλλαγή | Παράδειγμα |
|---|---|
| http χωρίς www | http://example.com/ |
| http με www | http://www.example.com/ |
| https χωρίς www | https://example.com/ |
| https με www | https://www.example.com/ |
Για εσάς πρόκειται για ένα site. Για μια μηχανή αναζήτησης είναι τέσσερις διαφορετικές διευθύνσεις. Αν και οι τέσσερις εμφανίζουν την ίδια σελίδα, η Google πρέπει να επιλέξει μόνη της ποια είναι η «πραγματική» διεύθυνση. Η Google την ονομάζει κανονική διεύθυνση (canonical, το μάθημα 3.5 εξετάζει το θέμα πιο αναλυτικά). Η Google συνιστά να επιλέξετε εσείς μία διεύθυνση ως προτιμώμενη διεύθυνση και να ανακατευθύνετε εκεί τις υπόλοιπες παραλλαγές. Έτσι δεν υπάρχει αμφιβολία και οι σύνδεσμοι προς κάθε παραλλαγή μετρούν για την ίδια σελίδα.
Το Bloemenatelier Lotte επιλέγει τη https://www.example.com/. Οι τρεις άλλες παραλλαγές ανακατευθύνουν εκεί. Αν θα επιλέξετε με ή χωρίς www δεν έχει σημασία για τις μηχανές αναζήτησης. Σημασία έχει να κάνετε μία επιλογή και να τη χρησιμοποιείτε παντού: στο μενού σας, στο sitemap σας, στο canonical σας και στο προφίλ της επιχείρησής σας.
Γιατί https
https σημαίνει ότι η σύνδεση μεταξύ προγράμματος περιήγησης και server είναι κρυπτογραφημένη με ένα πιστοποιητικό. Κανείς στη διαδρομή δεν μπορεί να διαβάσει τα δεδομένα ή να αλλάξει κάτι στη σελίδα, για παράδειγμα σε ένα δημόσιο wifi.
Για τις μηχανές αναζήτησης το https μετράει με δύο τρόπους:
- Ως σήμα. Η Google ανακοίνωσε το 2014 ότι το https είναι σήμα κατάταξης, αλλά τότε το χαρακτήρισε «ένα πολύ ελαφρύ σήμα» που βαραίνει λιγότερο από το καλό περιεχόμενο. Στην τεκμηρίωση για την εμπειρία σελίδας το https αναφέρεται ως μία από τις ερωτήσεις που πρέπει να κάνετε στον εαυτό σας («παραδίδονται οι σελίδες σας με ασφάλεια;»). Μην το υπερβάλλετε λοιπόν: το https από μόνο του δεν σας φέρνει στην κορυφή.
- Για τους επισκέπτες. Τα προγράμματα περιήγησης εμφανίζουν «Μη ασφαλής» σε μια σελίδα με http, ιδίως όταν υπάρχει φόρμα. Ένας επισκέπτης που το βλέπει αυτό αποχωρεί πιο γρήγορα. Αυτό το παρατηρείτε στην επισκεψιμότητά σας, όχι σε κάποιον κανόνα κατάταξης.
Ένα έγκυρο πιστοποιητικό μπορείτε σήμερα να το αποκτήσετε δωρεάν μέσω του Let's Encrypt. Στις περισσότερες εταιρείες hosting, και στη WebOké, ζητείται και ανανεώνεται αυτόματα. Προσέξτε ότι το πιστοποιητικό πρέπει να καλύπτει και τα δύο ονόματα: χωρίς και με www. Αν καλύπτει μόνο το example.com, τότε η https://www.example.com/ εμφανίζει σφάλμα πιστοποιητικού, πριν καν προλάβει να γίνει η ανακατεύθυνση.
Μόνιμη ή προσωρινή ανακατεύθυνση
Μια ανακατεύθυνση (redirect) είναι μια απάντηση του server: «αυτή η σελίδα βρίσκεται κάπου αλλού». Αυτό γίνεται με έναν τριψήφιο κωδικό κατάστασης που αρχίζει με 3, μαζί με μια κεφαλίδα Location με τη νέα διεύθυνση.
| Κωδικός | Σημασία | Τι κάνει η Google με αυτόν |
|---|---|---|
| 301 | Μετακινήθηκε μόνιμα | Ισχυρό σήμα ότι ο προορισμός είναι η κανονική διεύθυνση |
| 308 | Μετακινήθηκε μόνιμα (η μέθοδος παραμένει ίδια) | Το ίδιο με το 301 |
| 302 | Βρέθηκε προσωρινά | Κανένα σήμα· η παλιά διεύθυνση συχνά παραμένει στα αποτελέσματα |
| 307 | Προσωρινή (η μέθοδος παραμένει ίδια) | Το ίδιο με το 302 |
Σύμφωνα με το Google Search Central, η ευρετηρίαση χρησιμοποιεί μια μόνιμη ανακατεύθυνση ως σήμα ότι ο προορισμός πρέπει να γίνει κανονικός. Με μια προσωρινή ανακατεύθυνση αυτό δεν συμβαίνει: η παλιά διεύθυνση συνήθως παραμένει στα αποτελέσματα. Η μετάβαση από http σε https και η επιλογή με ή χωρίς www είναι μόνιμες καταστάσεις. Χρησιμοποιήστε λοιπόν 301 ή 308.
Μπορείτε να δείτε μόνοι σας μια ανακατεύθυνση. Σε ένα τερματικό:
$ curl -sI http://example.com/
HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/Ή στο πρόγραμμα περιήγησής σας: ανοίξτε τα εργαλεία προγραμματιστή (F12), την καρτέλα Δίκτυο, ενεργοποιήστε την επιλογή που διατηρεί το αρχείο καταγραφής κατά τη φόρτωση νέας σελίδας και φορτώστε τη διεύθυνση http. Θα δείτε τότε κάθε βήμα με τον κωδικό του.
Αλυσίδες ανακατευθύνσεων
Μια αλυσίδα ανακατευθύνσεων είναι μια ανακατεύθυνση προς μια διεύθυνση που ανακατευθύνει και αυτή με τη σειρά της. Ένα συνηθισμένο παράδειγμα:
http://example.com/ 301 → https://example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200Λειτουργεί, αλλά σε κάθε πρώτη επίσκεψη κοστίζει ένα επιπλέον ταξίδι προς τον server και πίσω. Το web.dev αναφέρει τις ανακατευθύνσεις ως μία από τις αιτίες αργής πρώτης απόκρισης του server (μάθημα 4.3): κάθε βήμα προστίθεται, και οι αλυσίδες ακόμη περισσότερο. Καλύτερα να καταλήγει κάθε παραλλαγή με ένα βήμα στην προτιμώμενη διεύθυνση:
http://example.com/ 301 → https://www.example.com/
http://www.example.com/ 301 → https://www.example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200Για την παλιά διεύθυνση http με το άλλο όνομα αυτό δεν γίνεται πάντα σε ένα βήμα, επειδή με ορισμένες ρυθμίσεις ο server στέλνει πρώτα στο https του ίδιου ονόματος και μετά στο άλλο όνομα. Δύο βήματα είναι τότε αποδεκτά· τρία ή περισσότερα είναι λόγος να ελέγξετε τις ρυθμίσεις. Ένας βρόχος (το Α στέλνει στο Β, το Β στέλνει πάλι στο Α) είναι πάντα λάθος: η σελίδα τότε δεν ανοίγει καθόλου.
HSTS: το πρόγραμμα περιήγησης το θυμάται
Το HSTS (HTTP Strict Transport Security, RFC 6797) είναι μια κεφαλίδα που στέλνει ο server μέσω https:
Strict-Transport-Security: max-age=31536000Ένα πρόγραμμα περιήγησης που την έχει δει μία φορά, πηγαίνει στη συνέχεια για αυτό το site κατευθείαν σε https, χωρίς να δοκιμάσει πρώτα http. Έτσι γλιτώνετε την πρώτη ανακατεύθυνση και προστατεύεστε από όσους παρακολουθούν τη σύνδεση. Το web.dev αναφέρει επίσης το HSTS ως τρόπο να αποφύγετε την ανακατεύθυνση από http σε https. Για τις μηχανές αναζήτησης το HSTS δεν είναι σήμα· για τους επισκέπτες σας είναι βελτίωση. Ενεργοποιήστε το μόνο όταν το https λειτουργεί σωστά σε όλα τα ονόματα, γιατί το πρόγραμμα περιήγησης το θυμάται για όσο διάστημα ορίζει το max-age. Το μάθημα για την ασφάλεια στο διαδίκτυο (Ασφαλείς online για επιχειρηματίες) εξετάζει το θέμα πιο αναλυτικά.
Μικτό περιεχόμενο
Μια σελίδα https που φορτώνει μια εικόνα, ένα script ή ένα stylesheet μέσω http:// έχει μικτό περιεχόμενο (mixed content). Τα προγράμματα περιήγησης μπλοκάρουν τα μη ασφαλή scripts και stylesheets ή εμφανίζουν προειδοποίηση. Μετά τη μετάβαση σε https αυτό εμφανίζεται συχνά σε παλιές εικόνες μέσα σε κείμενα ή σε ένα θέμα με σταθερές διευθύνσεις. Αναζητήστε στον πηγαίο κώδικα τα src="http:// και href="http:// και αντικαταστήστε τα με https ή με μια σχετική διεύθυνση.
Στην πράξη: ρύθμιση ανακατεύθυνσης σε https
Σε ένα πακέτο hosting της WebOké ενεργοποιείτε την ανακατεύθυνση σε https στο DirectAdmin, στις ρυθμίσεις του domain (διακόπτης "Force SSL with https redirect"), και στην ίδια σελίδα επιλέγετε στο "Force redirect" αν θα λειτουργείτε με ή χωρίς www. Ρυθμίστε την ανακατεύθυνση σε ένα μόνο σημείο: δύο κανόνες που κάνουν ο καθένας κάτι διαφορετικό (για παράδειγμα στον πίνακα ελέγχου και σε ένα plugin) δημιουργούν εύκολα βρόχο. Ένα site που δημιουργήθηκε με τον AI Builder αποκτά κατά τη δημοσίευση πιστοποιητικό και δική του διεύθυνση. Στο WordPress συμπληρώνετε στις Ρυθμίσεις, General τη Διεύθυνση WordPress και τη Διεύθυνση ιστότοπου με https:// και το όνομα που επιλέξατε· την ίδια την ανακατεύθυνση τη ρυθμίζετε στον server. Σε άλλους παρόχους και εργαλεία δημιουργίας ιστοσελίδων λειτουργεί παρόμοια, μόνο που τα κουμπιά έχουν άλλα ονόματα.
Αν θέλετε να το κάνετε μέσω .htaccess (Apache ή LiteSpeed), τότε το παρακάτω στέλνει όλες τις παραλλαγές με ένα βήμα στη https://www.example.com:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]Ελέγξτε μετά πάντα και τις τέσσερις παραλλαγές, και με μια διαδρομή στο τέλος (http://example.com/contact): η διαδρομή πρέπει να διατηρείται και όχι να μεταφέρεται στην αρχική σελίδα.
Σύνοψη
- Επιλέξτε μία προτιμώμενη διεύθυνση (https, με ή χωρίς www) και ανακατευθύνετε εκεί τις υπόλοιπες παραλλαγές.
- Για μόνιμες ανακατευθύνσεις χρησιμοποιήστε 301 ή 308· οι 302 και 307 είναι προσωρινές και δεν δίνουν στην Google σήμα για την κανονική διεύθυνση.
- Φροντίστε κάθε παραλλαγή να καταλήγει με ένα βήμα, το πολύ δύο, στην προτιμώμενη διεύθυνση· οι αλυσίδες κοστίζουν χρόνο και οι βρόχοι χαλάνε το site.
- Σύμφωνα με την Google, το https είναι ελαφρύ σήμα κατάταξης· για τους επισκέπτες είναι κυρίως ζήτημα εμπιστοσύνης. Το πιστοποιητικό πρέπει να καλύπτει και τα δύο ονόματα.
- Το HSTS κάνει το πρόγραμμα περιήγησης να πηγαίνει μόνο του σε https· το μικτό περιεχόμενο το καθαρίζετε μετά τη μετάβαση.
Κουίζ
Άσκηση
Άσκηση A4.1: Γίνεται η μετάβαση σε https με ένα μόνο βήμα; Συμπληρώστε το domain σας (χωρίς www). Το πρόγραμμα δοκιμάζει και τις τέσσερις παραλλαγές (http και https, με και χωρίς www), ακολουθεί κάθε ανακατεύθυνση βήμα προς βήμα και ελέγχει το πιστοποιητικό και των δύο ονομάτων. Για κάθε παραλλαγή βλέπετε την αλυσίδα με τους κωδικούς κατάστασης, αν όλες καταλήγουν στην ίδια διεύθυνση https και αν υπάρχει κεφαλίδα HSTS. Δεν έχετε δικό σας site; Χρησιμοποιήστε το rijksoverheid.nl.
Περαιτέρω ανάγνωση
Τα βήματα σε αυτά τα άρθρα ισχύουν για τους πίνακες ελέγχου της WebOké· σε άλλους παρόχους λειτουργεί παρόμοια.
- Εγχειρίδιο DirectAdmin 6.4: Επισκέπτες πάντα προς https
- Εγχειρίδιο DirectAdmin 4.3: Ρυθμίσεις ενός domain: SSL, PHP, www και private_html
- Εγχειρίδιο DirectAdmin 6.3: Πιστοποιητικό για www, subdomains και wildcard
- Υποχρεωτική ανακατεύθυνση επισκεπτών σε https
- Δωρεάν μάθημα DNS 3.4: www, ανακατεύθυνση και τι δεν κάνει το DNS
- Google Search Central, Redirects and Google Search: https://developers.google.com/search/docs/crawling-indexing/301-redirects
- Google Search Central Blog, HTTPS as a ranking signal (2014): https://developers.google.com/search/blog/2014/08/https-as-ranking-signal
- RFC 6797 (HSTS): https://www.rfc-editor.org/rfc/rfc6797
- Δωρεάν μάθημα Ασφαλείς online για επιχειρηματίες 4.2: Ο ιστότοπός σας: https, HSTS και headers ασφαλείας
- Δωρεάν μάθημα WordPress 3.1: Https και το certificate
- Δωρεάν μάθημα WordPress 3.2: www, ανακατεύθυνση και μικτό περιεχόμενο (mixed content)
