Μετάβαση στο περιεχόμενο
SSL & Ασφάλεια 5 λεπτά ανάγνωση Ενημερώθηκε

Δεν Μπορείτε να Επισκεφτείτε τον Ιστότοπο Επειδή Χρησιμοποιεί HSTS

Το site έχει HSTS και ο browser δεν σε αφήνει να συνεχίσεις όταν υπάρχει σφάλμα πιστοποιητικού. Τι σημαίνει, τι κάνεις ως επισκέπτης και ως ιδιοκτήτης.

Σε αυτή τη σελίδα

HSTS: Τι σημαίνει το μήνυμα

Το HSTS (HTTP Strict Transport Security) είναι μια οδηγία που στέλνει το site στον browser: «από εδώ και πέρα, συνδέσου μαζί μου μόνο με ασφαλή σύνδεση και μην δεχτείς ποτέ προβληματικό πιστοποιητικό». Είναι σαν ένα κτίριο που λέει στον θυρωρό «κανείς δεν μπαίνει από την πλαϊνή πόρτα· αν χαλάσει η κλειδαριά της κεντρικής, απλώς δεν μπαίνει κανείς». Το πρότυπο του HSTS απαγορεύει ρητά στον browser να αφήσει τον χρήστη να παρακάμψει την προειδοποίηση.

Ο browser μαθαίνει ότι ένα site χρησιμοποιεί HSTS με δύο τρόπους:

  • Από προηγούμενη επίσκεψη. Το site έστειλε την κεφαλίδα Strict-Transport-Security και ο browser τη θυμάται για όσο ορίζει το max-age (συχνά ένας χρόνος ή και περισσότερο).
  • Από ενσωματωμένη λίστα (preload). Ο Chrome και οι περισσότεροι browsers έχουν μέσα τους λίστα με domains που είναι πάντα HSTS, ακόμη και στην πρώτη επίσκεψη. Στη λίστα υπάρχουν και ολόκληρες καταλήξεις, όπως .app, .dev και .page: κάθε site με αυτές τις καταλήξεις είναι υποχρεωτικά HTTPS.

Το μήνυμα για το HSTS εμφανίζεται πάντα μαζί με έναν κωδικό σφάλματος πιστοποιητικού. Αυτός ο κωδικός δείχνει τι πραγματικά χάλασε:

  • NET::ERR_CERT_DATE_INVALID: έληξε το πιστοποιητικό ή είναι λάθος το ρολόι σου. Δες τον οδηγό ERR_CERT_DATE_INVALID.
  • NET::ERR_CERT_COMMON_NAME_INVALID: το πιστοποιητικό είναι για άλλο όνομα. Δες τον οδηγό ERR_CERT_COMMON_NAME_INVALID.
  • NET::ERR_CERT_AUTHORITY_INVALID: ο browser δεν εμπιστεύεται τον εκδότη. Δες τον οδηγό ERR_CERT_AUTHORITY_INVALID.

Πώς εμφανίζεται σε Chrome, Edge, Firefox και Safari

BrowserΤι γράφει η σελίδαΚωδικός
Chrome«Η σύνδεσή σας δεν είναι ιδιωτική» και στις λεπτομέρειες «Δεν μπορείτε να επισκεφτείτε τον ιστότοπο … αυτήν τη στιγμή, επειδή ο ιστότοπος χρησιμοποιεί HSTS.», χωρίς επιλογή να συνεχίσειςΟ κωδικός του πιστοποιητικού, π.χ. NET::ERR_CERT_DATE_INVALID, NET::ERR_CERT_COMMON_NAME_INVALID, NET::ERR_CERT_AUTHORITY_INVALID
Edge"Your connection isn't private", χωρίς επιλογή να συνεχίσειςΊδιοι κωδικοί με τον Chrome
Firefox«Δεν έγινε σύνδεση: Πιθανό ζήτημα ασφαλείας», με την εξήγηση ότι το site έχει πολιτική HSTS και «Δεν μπορείτε να προσθέσετε εξαίρεση για να επισκεφτείτε αυτόν τον ιστότοπο»Ο κωδικός του πιστοποιητικού, π.χ. SEC_ERROR_EXPIRED_CERTIFICATE, SSL_ERROR_BAD_CERT_DOMAIN, SEC_ERROR_UNKNOWN_ISSUER
Safari"This Connection Is Not Private"—

Αν είσαι επισκέπτης

  1. Μην ψάχνεις τρόπο να το παρακάμψεις. Το μπλοκάρισμα υπάρχει για να σε προστατέψει. Αν κάποιος παρεμβάλλεται στη σύνδεση, η παράκαμψη θα του έδινε τους κωδικούς σου.
  2. Έλεγξε ημερομηνία, ώρα και ζώνη ώρας. Με λάθος ρολόι όλα τα πιστοποιητικά φαίνονται άκυρα. Ενεργοποίησε την αυτόματη ρύθμιση ώρας.
  3. Άλλαξε δίκτυο. Το Wi-Fi σε ξενοδοχεία, αεροδρόμια και καφετέριες συχνά «πιάνει» τις συνδέσεις μέχρι να συνδεθείς στη σελίδα εισόδου του. Ολοκλήρωσε πρώτα τη σύνδεση στο Wi-Fi και ξαναδοκίμασε, ή δοκίμασε με δεδομένα κινητού.
  4. Έλεγξε antivirus, VPN ή εταιρικό δίκτυο. Προγράμματα που ελέγχουν την κίνηση HTTPS με δικό τους πιστοποιητικό προκαλούν συχνά αυτό το σφάλμα. Απενεργοποίησε προσωρινά τη «σάρωση HTTPS» ή το VPN.
  5. Δοκίμασε άλλη συσκευή. Αν το site δεν ανοίγει από πουθενά, το πρόβλημα είναι στο site. Ενημέρωσε τον ιδιοκτήτη του.
  6. Διαγραφή της «μνήμης» HSTS: μόνο σε ειδική περίπτωση. Βοηθά μόνο όταν ξέρεις ότι το site σταμάτησε σκόπιμα να χρησιμοποιεί HTTPS (π.χ. ένα δικό σου δοκιμαστικό site) και όχι όταν απλώς χάλασε το πιστοποιητικό. Στον Chrome: γράψε chrome://net-internals/#hsts και στην ενότητα «Delete domain security policies» βάλε το domain. Δεν λειτουργεί για domains της ενσωματωμένης λίστας, και αν το site στέλνει ακόμη την κεφαλίδα HSTS, ξαναμπαίνει στην επόμενη επίσκεψη. Στον Firefox: άνοιξε το Ιστορικό, κάνε δεξί κλικ σε μια σελίδα του site και επίλεξε «Διαγραφή δεδομένων ιστοτόπου…». Αυτό σβήνει επίσης ιστορικό και cookies του site, οπότε θα αποσυνδεθείς.

Αν είσαι ο ιδιοκτήτης: οι συνηθισμένες αιτίες

  1. Πρόβλημα στο ίδιο το πιστοποιητικό. Ληγμένο, για λάθος όνομα ή με ελλιπή αλυσίδα. Το HSTS απλώς κάνει το σφάλμα «αδιαπέραστο». Διόρθωσε το πιστοποιητικό ακολουθώντας τον οδηγό του κωδικού που βλέπεις, και το μήνυμα φεύγει μόνο του.
  2. Subdomain χωρίς έγκυρο πιστοποιητικό, ενώ έχεις includeSubDomains. Με αυτή την επιλογή το HSTS ισχύει για ΚΑΘΕ subdomain. Ένα παλιό subdomain που λειτουργούσε μόνο με http (π.χ. ένα παλιό panel ή δοκιμαστικό site) γίνεται ξαφνικά απρόσιτο. Βάλε έγκυρο πιστοποιητικό σε όλα τα subdomains που χρησιμοποιείς.
  3. Το domain είναι στη λίστα preload. Η καταχώριση δεν αναιρείται εύκολα: σύμφωνα με το hstspreload.org, η αφαίρεση χρειάζεται μήνες για να φτάσει στους χρήστες με τις ενημερώσεις του Chrome. Για να μπει ένα domain στη λίστα απαιτούνται max-age τουλάχιστον ενός έτους, includeSubDomains και preload, άρα όλα τα subdomains πρέπει να έχουν HTTPS.
  4. Θέλεις να απενεργοποιήσεις το HSTS. Αν απλώς σβήσεις την κεφαλίδα, οι browsers που την έχουν δει τη θυμούνται μέχρι να λήξει το max-age. Το σωστό είναι να συνεχίσεις να σερβίρεις έγκυρο HTTPS με Strict-Transport-Security: max-age=0 για αρκετό καιρό ώστε να το δουν οι επισκέπτες σου. Αν το domain είναι και στη λίστα preload, ζήτησε και την αφαίρεσή του.
  5. Το HSTS μπαίνει από άλλο σημείο. Αν μπροστά από το site υπάρχει CDN ή proxy (π.χ. Cloudflare), η κεφαλίδα μπορεί να προστίθεται από εκεί και όχι από τον server σου. Έλεγξε και τις ρυθμίσεις του.

Έλεγξε τι HSTS στέλνει το site σου

Το Security Headers Checker δείχνει αν το site στέλνει HSTS, με τι max-age και αν έχει includeSubDomains και preload (το max-age=0 σημαίνει απενεργοποιημένο). Το SSL Checker δείχνει αν το πιστοποιητικό έχει λήξει, ποια ονόματα καλύπτει και αν η αλυσίδα είναι πλήρης.

→ Έλεγχος Security Headers → Έλεγχος SSL

Περισσότερα: security headers και HSTS, ERR_CERT_DATE_INVALID, ERR_CERT_COMMON_NAME_INVALID και «Δεν είναι ασφαλές» στο Chrome.

Συνηθισμένα λάθη

  • Να ενεργοποιείς includeSubDomains ή preload χωρίς να έχεις ελέγξει ότι ΟΛΑ τα subdomains έχουν έγκυρο πιστοποιητικό.
  • Να ξεκινάς κατευθείαν με max-age ενός έτους. Το hstspreload.org προτείνει σταδιακή αύξηση: 5 λεπτά, μετά μία εβδομάδα, μετά ένας μήνας.
  • Να σβήνεις την κεφαλίδα και να πιστεύεις ότι το HSTS έκλεισε αμέσως.
  • Να ψάχνεις κόλπα παράκαμψης αντί να διορθώνεις το πιστοποιητικό.

Συχνές Ερωτήσεις

Γιατί δεν υπάρχει κουμπί για να συνεχίσω;
Επειδή το site έχει δηλώσει HSTS, δηλαδή ότι δέχεται μόνο έγκυρο HTTPS. Το πρότυπο απαγορεύει στον browser να σε αφήσει να παρακάμψεις ένα σφάλμα πιστοποιητικού σε τέτοιο site.
Φταίει το site ή εγώ;
Αν το ίδιο site ανοίγει κανονικά από άλλη συσκευή ή άλλο δίκτυο, φταίει το ρολόι, το antivirus ή το δίκτυό σου (συχνά δημόσιο Wi-Fi). Αν δεν ανοίγει από πουθενά, φταίει το πιστοποιητικό του site.
Πώς απενεργοποιώ το HSTS στο site μου;
Συνέχισε να σερβίρεις έγκυρο HTTPS με την κεφαλίδα Strict-Transport-Security: max-age=0 μέχρι να τη δουν οι browsers των επισκεπτών. Αν το domain είναι στη λίστα preload, ζήτησε αφαίρεση στο hstspreload.org, που χρειάζεται μήνες.
Γιατί ανοίγει το κεντρικό site αλλά όχι ένα subdomain;
Πιθανότατα το HSTS έχει includeSubDomains και το subdomain δεν έχει έγκυρο πιστοποιητικό. Βάλε πιστοποιητικό και στο subdomain.

Δοκιμάστε αμέσως

Σχετικοί οδηγοί

Αναφορά σφάλματος