Πώς Βρήκα ένα Κρυμμένο Cloudflare Bug μια Κυριακή Μεσάνυχτα (Η χαρά του curl)
Υποτίθεται ότι θα ήταν ένα γρήγορο weekend project. Ξέρεις το είδος: «Θα σηκώσω απλά ένα egress VM, θα δρομολογήσω κάποια κίνηση μέσω αυτού...»

Υποτίθεται ότι θα ήταν ένα γρήγορο weekend project. Ξέρεις το είδος: "Θα σηκώσω απλά ένα egress VM, θα δρομολογήσω κάποια κίνηση μέσω αυτού, θα πιω τον καφέ μου και θα έχω τελειώσει μέχρι το μεσημέρι." Αγαπητέ αναγνώστη, δεν είχα τελειώσει μέχρι το μεσημέρι.
Το Setup
Έφτιαχνα ένα μικρό access tier για κάποια dev environments: ένα egress VM με Cloudflare Zero Trust μπροστά του, δρομολόγηση βάσει hostname για δύο συγκεκριμένα dev domains και AWS WAF στην άλλη πλευρά να ελέγχει την source IP. Αρκετά τυπικό "δώσε στην ομάδα μου ασφαλή πρόσβαση χωρίς να εκθέσω πράγματα στο δημόσιο internet" πράγματα.
Όλα πήγαν ομαλά μέχρι που έφτασα στο σημείο όπου πρέπει να ενεργοποιήσεις το TLS decryption. Αυτή είναι η μαγεία που επιτρέπει στο Cloudflare gateway να επιθεωρεί πραγματικά την κίνηση και να τη δρομολογεί βάσει hostname αντί μόνο βάσει IP. Χωρίς αυτό, οι πανέμορφοι hostname κανόνες σου κάθονται εκεί όμορφοι και δεν κάνουν απολύτως τίποτα.
Η Διαδρομή των Tutorials
Ακολούθησα το επίσημο Cloudflare learning path. Ακολούθησα τρία διαφορετικά blog posts. Ακολούθησα το YouTube tutorial από κάποιον του οποίου η φωνή ακουγόταν σαν να ήθελε πραγματικά να κάνω subscribe. Όλοι έλεγαν το ίδιο πράγμα:
Πήγαινε στο Zero Trust > Settings > Network > Firewall > TLS decryption και γύρισε τον διακόπτη.
Πήγα λοιπόν εκεί. Ο διακόπτης γύρισε. Τότε εμφανίστηκε ένα κόκκινο banner στο πάνω μέρος της οθόνης που έλεγε απλά:
Error configuring TLS setting.
Αυτό ήταν. Κανένας κωδικός. Καμία υπόδειξη. Κανένα "κάνε κλικ εδώ για λεπτομέρειες" link. Απλά μια αίσθηση του "κάτι πήγε στραβά, καλή τύχη."
Προσπάθησα ξανά. Ίδιο σφάλμα. Ανανέωσα. Ίδιο σφάλμα. Δοκίμασα σε Firefox. Ίδιο σφάλμα. Καθάρισα την cache. Ίδιο σφάλμα. Σκέφτηκα να φτιάξω καφέ. Έφτιαξα καφέ. Ίδιο σφάλμα.
Η Έρευνα
Εδώ μπαίνει το αγαπημένο μου εργαλείο. Όταν το UI αρνείται να σου πει τι συμβαίνει, το network tab και το curl θα το κάνουν. Άνοιξα τα developer tools, παρακολούθησα το request που έστελνε ο διακόπτης, το αντέγραψα ως curl και το έτρεξα τοπικά:
{
"result": null,
"success": false,
"errors": [
{
"code": 2211,
"message": "TLS decryption cannot be enabled without a certificate. Please disable TLS encryption or configure a certificate using the 'certificate' setting."
}
],
"messages": []
}Εκεί ήταν. Ένα σαφές, χρήσιμο, αξιοποιήσιμο μήνυμα σφάλματος. Το είδος του μηνύματος που, αν εμφανιζόταν στο UI, θα μου είχε εξοικονομήσει περίπου ενενήντα λεπτά από τη ζωή μου. Αντίθετα, κρυβόταν μέσα στην JSON απόκριση, καταπίνονταν κάπου ανάμεσα στο API και την οθόνη.
Το μήνυμα βασικά έλεγε: "χρειάζεσαι ένα πιστοποιητικό πρώτα, απόλυτε πατάτα." (Παραφράζω.)
Η Πραγματική Λύση
Ορίστε τι κανείς στο internet δεν φαίνεται να αναφέρει: η διαχείριση πιστοποιητικών έχει μετακινηθεί.
Κάθε οδηγός που διάβασα έδειχνε την παλιά τοποθεσία. Η πραγματική τρέχουσα τοποθεσία είναι θαμμένη σε μια εντελώς διαφορετική ενότητα. Συγκεκριμένα:
Zero Trust > Traffic policies > Traffic settings > Certificates (καρτέλα στο πάνω μέρος)Όχι Network. Όχι Firewall. Traffic policies > Traffic settings.
Δημιουργείς ένα Cloudflare-managed πιστοποιητικό εκεί. Μετά το μαρκάρεις ως Available και In-Use. Μετά περιμένεις πέντε με δέκα λεπτά (αυτό το κομμάτι επίσης κανείς δεν αναφέρει, απλά κοιτάς ένα πεδίο κατάστασης και αμφισβητείς σιωπηλά τις επιλογές της ζωής σου). Μόλις το πιστοποιητικό είναι πλήρως ενεργό, μπορείς επιτέλους να επιστρέψεις και να ενεργοποιήσεις το TLS decryption.
Απλά δουλεύει. Ο διακόπτης γυρίζει. Το κόκκινο banner μένει μακριά. Ο κόσμος βγάζει ξανά νόημα.
Το Ηθικό Δίδαγμα
Δύο πράγματα μου έμειναν από αυτή τη μικρή περιπέτεια.
Πρώτον: τα docs δεν ήταν λάθος, ήταν απλά ξεπερασμένα. Το Cloudflare κινείται γρήγορα και αναδιοργανώνει το dashboard του συχνά. Αυτό δεν είναι παράπονο, απλά μια πραγματικότητα. Όταν ακολουθείς οποιονδήποτε οδηγό για οποιοδήποτε ταχέως εξελισσόμενο προϊόν, περίμενε ότι τα μονοπάτια των μενού μπορεί να έχουν μετατοπιστεί. Οι έννοιες είναι ίδιες, τα κουμπιά δεν είναι πάντα εκεί που τα δείχνουν τα screenshots.
Δεύτερον: το network tab είναι ο καλύτερός σου φίλος. Όταν ένα UI σου δίνει ένα άχρηστο σφάλμα, το API σχεδόν πάντα ξέρει περισσότερα. Τα browser dev tools, το curl ή ακόμα και η ανάγνωση της raw απόκρισης είναι η διαφορά ανάμεσα στο debugging σε πέντε λεπτά και το debugging σε πέντε ώρες. Ο χειρισμός σφαλμάτων του UI είναι ένα λεπτό στρώμα βαμμένο πάνω από ένα πολύ πιο λεπτομερές σύστημα και αυτό το σύστημα είναι συνήθως ακριβώς εκεί, περιμένοντάς σε να το ρωτήσεις ευγενικά.
Το Bonus
Το ανέφερα αυτό στην Cloudflare. Ο κωδικός σφάλματος 2211 έχει ένα απόλυτα καλό μήνυμα συνδεδεμένο μαζί του. Απλά δεν φτάνει στην οθόνη. Ελπίζω κάποιος να το εντοπίσει και ένας μελλοντικός weekend warrior να λάβει ένα χρήσιμο banner αντί για ένα ασαφές.
Μέχρι τότε, αν δεις ποτέ "Error configuring TLS setting" χωρίς περαιτέρω λεπτομέρειες, η απάντηση είναι πιθανότατα:
- Δημιούργησε ένα πιστοποιητικό πρώτα (κάτω από Traffic policies > Traffic settings)
- Μάρκαρέ το ως Available και In-Use
- Περίμενε
- Μετά ενεργοποίησε το TLS decryption
Και τώρα, αν μου επιτρέπεις, έχω ένα egress VM που επιτέλους δουλεύει και έναν καφέ που έχει κρυώσει δύο φορές.
Χαιρετισμούς από το γραφείο debugging της Κυριακής μεσάνυχτα (02:42 π.μ.).
Περισσότερα από τον Ercan
Δύο ακόμη ιστότοποι, ίδιος συγγραφέας, διαφορετικό έδαφος.
AI, LLMs, agents, εφαρμοσμένη ML.
Σημειώσεις πεδίου για AI workloads. Ανάλυση κόστους Bedrock, agent patterns, trade-offs αποθήκευσης διανυσμάτων, failure modes σε παραγωγή.
Επισκεφθείτε ercan.ai →Ο κόμβος. Σχετικά, συμβουλευτική, επικοινωνία.
Προσωπικός κόμβος και για τις δύο διαδρομές γραφής. Ποιος είμαι, πώς λειτουργεί η συμβουλευτική, πώς να επικοινωνήσετε.
Επισκεφθείτε ercanermis.com →