certificate verify failed — DedSec Project
TLS certificate verify failed: ώρα, αλυσίδα και παρεμβολή Αναγνώριση της πραγματικής αποτυχίας Αποτυχία TLS verification μπορεί να σημαίνει λάθος ρολόι, παλιά CA certificates, ελλιπές…
TLS certificate verify failed: ώρα, αλυσίδα και παρεμβολή
Αναγνώριση της πραγματικής αποτυχίας
Αποτυχία TLS verification μπορεί να σημαίνει λάθος ρολόι, παλιά CA certificates, ελλιπές intermediate στο server ή proxy interception. Το να απενεργοποιήσεις validation δεν κάνει σύνδεση αξιόπιστη.
Ασφαλής αρχικός έλεγχος
date -u
python -c "import ssl; print(ssl.get_default_verify_paths())"
# Verify hostname and issuer using a trusted browser.
Διόρθωση αιτίας χωρίς παράκαμψη προειδοποίησης
Έλεγξε ημερομηνία, ενημέρωση CA trust store, hostname και issuer. Σε γνωστό περιβάλλον εξέτασε proxy settings. Μη χρησιμοποιείς PYTHONHTTPSVERIFY=0, curl -k ή git config http.sslVerify false ως μόνιμη λύση, γιατί ανοίγουν κίνδυνο MITM.
Τεκμηρίωση: https://docs.python.org/3/library/ssl.html
Τι επαληθεύει το TLS
Ο client ελέγχει ότι το πιστοποιητικό αντιστοιχεί στο ζητούμενο hostname και ότι η αλυσίδα φτάνει σε αξιόπιστη αρχή (CA). Παρόμοια μηνύματα μπορεί να προέρχονται από λάθος ώρα στη συσκευή, παλιό CA bundle, εταιρικό proxy ή πραγματικά ελαττωματικό πιστοποιητικό server.
Δύο ασφαλείς πρώτες μετρήσεις
date -u
python -c "import ssl; print(ssl.get_default_verify_paths())"
Η πρώτη δείχνει αν το ρολόι του συστήματος είναι προφανώς λάθος. Η δεύτερη εμφανίζει πού αναζητά πιστοποιητικά το OpenSSL της Python. Αυτό δεν εγγυάται ότι ο browser χρησιμοποιεί το ίδιο trust store· γι' αυτό δύο clients μπορεί να συμπεριφέρονται διαφορετικά στον ίδιο ιστότοπο.
Απόφαση βάσει συμπτωμάτων
Αν αποτυγχάνουν πολλοί έγκυροι ιστοτόποι μετά από αλλαγή ημερομηνίας, εξέτασε πρώτα την ώρα. Αν αποτυγχάνει μόνο ένας host, έλεγξε hostname και αλυσίδα server. Αν λειτουργεί ο browser αλλά όχι συγκεκριμένη Python εφαρμογή, σύγκρινε τα trusted CAs του κάθε runtime. Σε εταιρικό περιβάλλον ένας proxy επιθεώρησης TLS μπορεί να απαιτεί επίσημα διαχειριζόμενη εμπιστοσύνη, όχι χειροκίνητη αποδοχή οποιουδήποτε πιστοποιητικού.
Μην καταργείς την ασφάλεια
Τα verify=False, curl -k ή γενικά flags που απενεργοποιούν την πιστοποίηση δεν διορθώνουν το root cause και εκθέτουν τα δεδομένα σε παρεμβολή. Αν η αλυσίδα δεν μπορεί να επαληθευτεί, σταμάτα τη σύνδεση έως ότου διορθωθεί η αιτία και επανέλαβε δοκιμή με ενεργό certificate verification.