Τελευταία ενημέρωση:
Σημείωση: Η Αγγλική έκδοση έχει ενημερωθεί από τη μετάφραση () Εμφάνιση στα Αγγλικά
Ο στόχος του Let’s Encrypt και του πρωτοκόλλου ACME είναι να καταστήσει δυνατή την εγκατάσταση ενός διακομιστή HTTPS και να του αποκτήσει αυτόματα ένα αξιόπιστο πιστοποιητικό περιήγησης, χωρίς καμία ανθρώπινη παρέμβαση. Αυτό επιτυγχάνεται με την εκτέλεση ενός management agent διαχείρισης πιστοποιητικών στο διακομιστή web.
Για να κατανοήσουμε πώς λειτουργεί η τεχνολογία, ας προχωρήσουμε στη διαδικασία ρύθμισης του https://example.com/
με έναν παράγοντα διαχείρισης πιστοποιητικών που υποστηρίζει το Let’s Encrypt.
Υπάρχουν δύο βήματα σε αυτή τη διαδικασία. Αρχικά, ο agent αποδεικνύει στην CA ότι ο διακομιστής web ελέγχει έναν τομέα. Στη συνέχεια, ο agent μπορεί να ζητήσει, να ανανεώσει και να ανακαλέσει πιστοποιητικά για αυτόν τον τομέα.
Επικύρωση Τομέα
Το Let’s Encrypt προσδιορίζει το διαχειριστή του διακομιστή με δημόσιο κλειδί. Η πρώτη φορά που το λογισμικό agent αλληλεπιδρά με Let’s Encrypt, δημιουργεί ένα νέο ζεύγος κλειδιών και αποδεικνύει στο Let’s Encrypt CA ότι ο διακομιστής ελέγχει έναν ή περισσότερους τομείς. Αυτό είναι παρόμοιο με την παραδοσιακή διαδικασία CA για τη δημιουργία ενός λογαριασμού και την προσθήκη τομέων σε αυτόν τον λογαριασμό.
Για να ξεκινήσετε τη διαδικασία, ο agent ρωτά το Let’s Encrypt CA τι χρειάζεται να κάνει για να αποδείξει ότι ελέγχει example.com
. Το Let’s Encrypt CA θα εξετάσει το όνομα τομέα που ζητείται και θα εκδώσει ένα ή περισσότερα σύνολα προκλήσεων. Αυτοί είναι διαφορετικοί τρόποι που ο agent μπορεί να αποδείξει τον έλεγχο του τομέα. Για παράδειγμα, η CA μπορεί να δώσει στον πράκτορα μια επιλογή είτε:
- Προβλέποντας μια εγγραφή DNS στο
example.com
, ή - Προβλέποντας έναν πόρο HTTP κάτω από ένα πολύ γνωστό URI στο
http://example.com/
Μαζί με τις προκλήσεις, το Let’s Encrypt CA παρέχει επίσης μια φορά που ο agent πρέπει να υπογράψει με το ζεύγος ιδιωτικών κλειδιών για να αποδείξει ότι ελέγχει το ζεύγος κλειδιών.
Το λογισμικό agent ολοκληρώνει ένα από τα παρεχόμενα σύνολα προκλήσεων. Ας πούμε ότι είναι σε θέση να ολοκληρώσει τη δεύτερη εργασία παραπάνω: δημιουργεί ένα αρχείο σε μια καθορισμένη διαδρομή στο http://example.com
site. Ο agent υπογράφει επίσης το παρεχόμενο nonce με το ιδιωτικό του κλειδί. Μόλις ο agent ολοκληρώσει αυτά τα βήματα, ειδοποιεί την CA ότι είναι έτοιμη να ολοκληρώσει την επικύρωση.
Στη συνέχεια, είναι δουλειά της CA να ελέγξει ότι οι προκλήσεις έχουν ικανοποιηθεί. Η αρχή αρχής επαληθεύει την υπογραφή στο nonce και επιχειρεί να πραγματοποιήσει λήψη του αρχείου από τον διακομιστή web και να βεβαιωθεί ότι έχει το αναμενόμενο περιεχόμενο.
Αν η υπογραφή πάνω από το nonce είναι έγκυρη, και οι προκλήσεις check out, τότε ο agent που προσδιορίζεται από το δημόσιο κλειδί είναι εξουσιοδοτημένος να κάνει τη διαχείριση πιστοποιητικών για example.com
. Καλούμε το ζεύγος κλειδιών ο agent χρησιμοποίησε ένα “ζεύγος εξουσιοδοτημένων κλειδιών” για example.com
.
Έκδοση Πιστοποιητικού και Ανάκληση
Μόλις ο agent έχει ένα εξουσιοδοτημένο ζεύγος κλειδιών, που απαιτούν, ανανέωση, και η ανάκληση πιστοποιητικών είναι απλή-αποστολή μηνυμάτων διαχείρισης πιστοποιητικών και υπογραφή τους με το εξουσιοδοτημένο ζεύγος κλειδιών.
Για να αποκτήσετε ένα πιστοποιητικό για τον τομέα, ο agent κατασκευάζει ένα PKCS#10 Αίτημα Υπογραφής Πιστοποιητικού που ζητά από το Let’s Encrypt CA να εκδώσει ένα πιστοποιητικό για example.com
με ένα συγκεκριμένο δημόσιο κλειδί. Ως συνήθως, η CSR περιλαμβάνει υπογραφή από το ιδιωτικό κλειδί που αντιστοιχεί στο δημόσιο κλειδί της CSR. Ο agent υπογράφει επίσης ολόκληρο το CSR με το εξουσιοδοτημένο κλειδί για example.com
έτσι ώστε το Let’s Encrypt CA να γνωρίζει ότι είναι εξουσιοδοτημένο.
Όταν το Let’s Encrypt CA λαμβάνει το αίτημα, επαληθεύει και τις δύο υπογραφές. Αν όλα φαίνονται καλά, εκδίδει ένα πιστοποιητικό για example.com
με το δημόσιο κλειδί από την CSR και το επιστρέφει στον agent.
Η ανάκληση λειτουργεί με παρόμοιο τρόπο. Ο agent υπογράφει αίτημα ανάκλησης με το ζεύγος κλειδιών εξουσιοδοτημένο για example.com
, and the Let’s Encrypt CA verifies that the request is authorized. Εάν ναι, δημοσιεύει πληροφορίες ανάκλησης στα συνήθη κανάλια ανάκλησης (δηλαδή OCSP), έτσι ώστε τα βασιζόμενα μέρη όπως τα προγράμματα περιήγησης μπορούν να γνωρίζουν ότι δεν πρέπει να αποδέχονται το ανακληθέν πιστοποιητικό.