Για μια λεπτομερή εξήγηση σχετικά με το πώς λειτουργεί η πρόκληση Let’s Encrypt DNS-01 (ή επικύρωση DNS), διαβάστε το άρθρο με τίτλο What Is Let’s Encrypt DNS-01 Challenge και πώς να το χρησιμοποιήσετε για να αποκτήσετε τα πιστοποιητικά SSL.
Σε αυτό το άρθρο, θα σας δείξουμε πώς να χρησιμοποιήσετε την επικύρωση Let’s Encrypt DNS για να αποκτήσετε ένα πιστοποιητικό SSL για το όνομα τομέα σας χρησιμοποιώντας την προσθήκη Certbot και Certbot CloudFlare DNS.
Θέμα Περιεχομένων:
- Διαχείριση του τομέα σας με το CloudFlare DNS
- Εγκατάσταση Certbot και Certbot CloudFlare Plugin στο Ubuntu/Debian
- Εγκατάσταση Certbot και Certbot CloudFlare Plugin στο Fedora
- Εγκατάσταση Certbot και Certbot CloudFlare Plugin σε RHEL/AlmaLinux/Rocky Linux/CentOS Stream
- Έλεγχος εάν το Certbot και το πρόσθετο Certbot CloudFlare έχουν εγκατασταθεί σωστά
- Δημιουργία ενός CloudFlare API Token
- Ασφαλής αποθήκευση του διακριτικού API CloudFlare στον υπολογιστή/διακομιστή
- Δημιουργία πιστοποιητικού SSL με χρήση του Certbot CloudFlare DNS Validation
- Καταχωρίστε τα πιστοποιητικά Let’s Encrypt SSL χρησιμοποιώντας το Certbot
- Ανανέωση των πιστοποιητικών Let’s Encrypt SSL με χρήση Certbot
- συμπέρασμα
- βιβλιογραφικές αναφορές
Διαχείριση του τομέα σας με το CloudFlare DNS
Για να αποκτήσετε ένα πιστοποιητικό Let’s Encrypt SSL χρησιμοποιώντας την επικύρωση CloudFlare DNS, πρέπει να έχετε λογαριασμό CloudFlare και ο τομέας σας πρέπει να χρησιμοποιεί το CloudFlare DNS. Μπορείς δημιουργήστε έναν λογαριασμό CloudFlare δωρεάν και η υπηρεσία CloudFlare DNS είναι επίσης δωρεάν.
Για να διαχειριστείτε τον τομέα σας με το CloudFlare DNS, μπορείτε να κάνετε ένα από τα εξής:
- Καταχωρίστε τον τομέα σας από το CloudFlare
- Μεταφέρετε τον τομέα σας στο CloudFlare
- Αλλάξτε τον διακομιστή ονομάτων DNS του ονόματος τομέα σας στον διακομιστή ονομάτων CloudFlare DNS από τον πίνακα ελέγχου του καταχωρητή τομέα σας
Δεν χρειάζεται να αγοράσετε έναν τομέα από το CloudFlare ή να μεταφέρετε έναν τομέα στο CloudFlare για να τον διαχειριστείτε με την υπηρεσία CloudFlare DNS. Μπορείτε απλώς να αλλάξετε τον διακομιστή ονομάτων του τομέα σας σε διακομιστή ονομάτων CloudFlare DNS από τον πίνακα ελέγχου του καταχωρητή τομέα σας (από όπου αγοράσατε τον τομέα) και να διαχειριστείτε τον τομέα σας από το CloudFlare. Για περισσότερες πληροφορίες σχετικά με την αλλαγή του διακομιστή ονομάτων του τομέα σας σε διακομιστή ονομάτων CloudFlare DNS, διαβάστε αυτό το άρθρο.
Εγκατάσταση Certbot και Certbot CloudFlare Plugin στο Ubuntu/Debian
Το Certbot και το πρόσθετο Certbot CloudFlare είναι διαθέσιμα στο επίσημο αποθετήριο πακέτων του Ubuntu/Debian. Έτσι, μπορείτε να τα εγκαταστήσετε στο Ubuntu/Debian πολύ εύκολα.
Πρώτα, ενημερώστε τη μνήμη cache του αποθετηρίου πακέτου APT με την ακόλουθη εντολή:
$ sudo εύστοχη ενημέρωση
Για να εγκαταστήσετε την προσθήκη Certbot και Certbot CloudFlare DNS, εκτελέστε την ακόλουθη εντολή:
$ sudo κατάλληλος εγκαθιστώ certbot python3-certbot-dns-cloudflareΓια να επιβεβαιώσετε την εγκατάσταση, πατήστε 'Y' και στη συνέχεια πατήστε <Εισαγωγή> .
Το Certbot και η προσθήκη Certbot CloudFlare DNS εγκαθίστανται. Χρειάζεται λίγος χρόνος για να ολοκληρωθεί.
Σε αυτό το σημείο, θα πρέπει να εγκατασταθεί η προσθήκη Certbot και Certbot CloudFlare DNS.
Εγκατάσταση Certbot και Certbot CloudFlare Plugin στο Fedora
Το Certbot και το πρόσθετο Certbot CloudFlare είναι διαθέσιμα στο επίσημο αποθετήριο πακέτων του Fedora και μπορούν να εγκατασταθούν στο Fedora πολύ εύκολα.
Αρχικά, ενημερώστε τη βάση δεδομένων του πακέτου DNF με την ακόλουθη εντολή:
$ sudo dnf makecache
Για να εγκαταστήσετε την προσθήκη Certbot και Certbot CloudFlare DNS στο Fedora, εκτελέστε την ακόλουθη εντολή:
$ sudo dnf εγκαθιστώ certbot python3-certbot-dns-cloudflareΓια να επιβεβαιώσετε την εγκατάσταση, πατήστε 'Y' και στη συνέχεια πατήστε <Εισαγωγή> .
Το Certbot και η προσθήκη Certbot CloudFlare DNS εγκαθίστανται. Χρειάζεται λίγος χρόνος για να ολοκληρωθεί.
Σε αυτό το σημείο, η προσθήκη Certbot και Certbot CloudFlare DNS θα πρέπει να εγκατασταθεί στο Fedora.
Εγκατάσταση Certbot και Certbot CloudFlare Plugin σε RHEL/AlmaLinux/Rocky Linux/CentOS Stream
Η προσθήκη Certbot CloudFlare DNS δεν είναι διαθέσιμη στα επίσημα αποθετήρια πακέτων του RHEL/AlmaLinux/Rocky Linux/CentOS Stream. Η προσθήκη Certbot CloudFlare DNS είναι διαθέσιμη στο αποθετήριο πακέτων EPEL. Μπορείτε να ενεργοποιήσετε το αποθετήριο πακέτων EPEL στο RHEL/AlmaLinux/Rocky Linux/CentOS Stream και να εγκαταστήσετε την προσθήκη Certbot CloudFlare DNS από εκεί.
Μόλις ενεργοποιήσετε το αποθετήριο πακέτων EPEL, ενημερώστε τη μνήμη cache της βάσης δεδομένων DNF με την ακόλουθη εντολή:
$ sudo dnf makecache
Στη συνέχεια, εγκαταστήστε την προσθήκη Certbot και Certbot CloudFlare DNS στο σύστημα RHEL/AlmaLinux/Rocky Linux/CentOS Stream με την ακόλουθη εντολή:
$ sudo dnf εγκαθιστώ certbot python3-certbot-dns-cloudflareΓια να επιβεβαιώσετε την εγκατάσταση, πατήστε 'Y' και στη συνέχεια πατήστε <Εισαγωγή> .
Το Certbot και η προσθήκη Certbot CloudFlare DNS εγκαθίστανται. Χρειάζεται λίγος χρόνος για να ολοκληρωθεί.
Για να αποδεχτείτε το κλειδί GPG του αποθετηρίου EPEL, πατήστε 'Y' και στη συνέχεια πατήστε <Εισαγωγή> .
Σε αυτό το σημείο, θα πρέπει να εγκατασταθεί η προσθήκη Certbot και Certbot CloudFlare DNS.
Έλεγχος εάν το Certbot και το πρόσθετο Certbot CloudFlare έχουν εγκατασταθεί σωστά
Για να ελέγξετε εάν το Certbot είναι εγκατεστημένο στον υπολογιστή σας, εκτελέστε την ακόλουθη εντολή:
$ certbot --εκδοχήΕάν είναι εγκατεστημένο το Certbot, η εντολή θα πρέπει να εκτυπώσει τον αριθμό έκδοσης του εγκατεστημένου Certbot στον υπολογιστή σας.
Όπως μπορείτε να δείτε, έχουμε το Certbot 2.1.0 εγκατεστημένο στον υπολογιστή μας Debian.
Για να ελέγξετε εάν η προσθήκη Certbot CloudFlare DNS είναι εγκατεστημένη στον υπολογιστή σας, εκτελέστε την ακόλουθη εντολή:
$ sudo προσθήκες certbotΕάν είναι εγκατεστημένη η προσθήκη Certbot CloudFlare DNS, θα πρέπει να βρείτε το 'dns-cloudflare' στη λίστα προσθηκών όπως επισημαίνεται στο ακόλουθο στιγμιότυπο οθόνης:
Δημιουργία ενός CloudFlare API Token
Για να επαληθεύσει την ιδιοκτησία του τομέα, το Certbot πρέπει να προσθέσει μια εγγραφή TXT στον τομέα που διαχειρίζεται ο διακομιστής CloudFlare DNS. Για αυτό, το Certbot χρειάζεται πρόσβαση στο διακριτικό API CloudFlare. Μπορείτε να δημιουργήσετε ένα διακριτικό API για τον τομέα σας από τον πίνακα ελέγχου του CloudFlare.
Αρχικά, συνδεθείτε στον λογαριασμό σας στο CloudFlare. Στη συνέχεια, κάντε κλικ στο εικονίδιο του προφίλ σας
> Το ΠΡΟΦΙΛ μου από την επάνω δεξιά γωνία της σελίδας.
Πλοηγηθείτε στην ενότητα 'Αριθμοί API'. [1] και κάντε κλικ στο «Δημιουργία διακριτικού» [2] .
Κάντε κλικ στο «Χρήση προτύπου» από την ενότητα «Επεξεργασία ζώνης DNS».
Από την ενότητα 'Άδεια', επιτρέψτε την άδεια 'Επεξεργασία' στη 'Ζώνη DNS' επιλέγοντας τις επισημασμένες επιλογές από τα αναπτυσσόμενα μενού.
Εάν διαχειρίζεστε πολλούς τομείς με το CloudFlare, μπορείτε να επιτρέψετε την τροποποίηση μιας 'Συγκεκριμένης ζώνης' από την ενότητα 'Πόρος ζώνης'. Το να επιτρέπεται σε ένα διακριτικό API να τροποποιεί μόνο μία ζώνη είναι πιο ασφαλές από το να επιτρέπεται στο διακριτικό API να τροποποιεί όλες τις ζώνες. Αυτό συμβαίνει επειδή εάν το διακριτικό API παραβιαστεί, η επιφάνεια επίθεσης θα είναι μικρότερη και θα προκληθεί λιγότερη ζημιά.
Εάν θέλετε να χρησιμοποιήσετε ένα μόνο κλειδί API για να τροποποιήσετε όλους τους τομείς που διαχειρίζονται το CloudFlare, επιλέξτε «Όλες οι ζώνες» από την ενότητα «Πόρος ζώνης».
Μόλις ολοκληρώσετε τη διαμόρφωση του διακριτικού API, κάντε κλικ στο 'Συνέχεια στη σύνοψη'.
Θα εμφανιστεί μια σύνοψη των ενεργειών που μπορείτε να εκτελέσετε στους τομείς που διαχειρίζονται το CloudFlare με το διακριτικό API. Κάντε κλικ στο «Δημιουργία διακριτικού».
Θα πρέπει να δημιουργηθεί ένα διακριτικό API. Αντιγράψτε το διακριτικό API κάπου ασφαλές για να μην το χάσετε. Μόλις αποχωρήσετε από αυτήν τη σελίδα, δεν θα μπορείτε να βρείτε ξανά αυτό το διακριτικό API. Πρέπει να δημιουργήσετε ένα νέο διακριτικό API σε περίπτωση που το χάσετε:
LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5
Ασφαλής αποθήκευση του διακριτικού API CloudFlare στον υπολογιστή/διακομιστή
Το Certbot πρέπει να χρησιμοποιήσει το διακριτικό API CloudFlare για να προσθέσει μια νέα εγγραφή TXT για τον τομέα σας στον διακομιστή DNS CloudFlare. Επομένως, πρέπει να αποθηκεύσετε το διακριτικό CloudFlare API στον υπολογιστή/διακομιστή σας. Η αποθήκευση του διακριτικού API χωρίς τη διασφάλιση των κατάλληλων αδειών πρόσβασης στο αρχείο μπορεί να επιτρέψει στα άλλα προγράμματα/χρήστες να έχουν πρόσβαση στο διακριτικό API. Δεν είναι αυτό που θέλετε για λόγους ασφαλείας. Σε αυτήν την ενότητα, θα σας δείξουμε πώς να αποθηκεύετε με ασφάλεια το διακριτικό CloudFlare API στο σύστημα αρχείων.
Αρχικά, δημιουργήστε έναν κατάλογο (δηλαδή ~/.secrets/certbot) όπου θέλετε να αποθηκεύσετε το κλειδί API CloudFlare ως εξής:
$ mkdir -pv ~ / .μυστικά / certbot
Δημιουργήστε ένα αρχείο 'cloudflare.ini' στον πρόσφατα δημιουργημένο κατάλογο (δηλαδή ~/.secrets/certbot) και ανοίξτε το με τον αγαπημένο σας επεξεργαστή κειμένου (π.χ. nano) ως εξής:
$ νανο ~ / .μυστικά / certbot / cloudflare.ini Πληκτρολογήστε την ακόλουθη γραμμή στο αρχείο 'cloudflare.ini' και πατήστε
Για να διασφαλίσετε ένα σωστό δικαίωμα πρόσβασης για το αρχείο 'cloudflare.ini', εκτελέστε τις ακόλουθες εντολές για να βεβαιωθείτε ότι μόνο ο χρήστης root έχει πρόσβαση ανάγνωσης και εγγραφής στο αρχείο:
$ sudo τσόουν ρίζα:ρίζα ~ / .μυστικά / certbot / cloudflare.ini$ sudo chmod 0600 ~ / .μυστικά / certbot / cloudflare.ini
Όπως μπορείτε να δείτε, μόνο ο χρήστης root έχει τα δικαιώματα ανάγνωσης και εγγραφής στο αρχείο 'cloudflare.ini'.
$ ls -λχ ~ / .μυστικά / certbot / cloudflare.ini
Άλλοι χρήστες που επιχειρούν να διαβάσουν το αρχείο 'cloudflare.ini' θα λάβουν ένα μήνυμα σφάλματος 'Απόρριψη άδειας'.
$ Γάτα ~ / .μυστικά / certbot / cloudflare.ini
Δημιουργία πιστοποιητικού SSL με χρήση του Certbot CloudFlare DNS Validation
Για να δημιουργήσετε ένα πιστοποιητικό Let's Encrypt SSL για το όνομα τομέα μπαλαντέρ '*.nodekite.com' χρησιμοποιώντας την επικύρωση CloudFlare DNS, εκτελέστε την εντολή cerbot ως εξής:
$ sudo certbot οπωσδήποτε --dns-cloudflare --dns-cloudflare-credentials ~ / .μυστικά / certbot / cloudflare.ini -ρε * .nodekite.comΓια να δημιουργήσετε ένα πιστοποιητικό Let's Encrypt SSL για τα ονόματα τομέα 'nodekite.com' και 'www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows:
$ sudo certbot οπωσδήποτε --dns-cloudflare --dns-cloudflare-credentials ~ / .μυστικά / certbot / cloudflare.ini -ρε www.nodekite.com -ρε nodekite.comΕάν οι αλλαγές DNS χρειάζονται πολύ χρόνο για να μεταδοθούν στους δημοφιλείς διακομιστές ονομάτων DNS παγκοσμίως, μπορείτε να χρησιμοποιήσετε την επιλογή “–dns-cloudflare-propagation-seconds” του Certbot για να ορίσετε τον αριθμό των δευτερολέπτων που θέλετε να περιμένει το Certbot πριν από την επικύρωση DNS διενεργείται.
$ sudo certbot οπωσδήποτε --dns-cloudflare --dns-cloudflare-credentials ~ / .μυστικά / certbot / cloudflare.ini --dns-cloudflare-propagation-seconds 60 -ρε * .nodekite.comΜόλις εκτελέσετε την εντολή Certbot, θα σας ζητηθεί να πληκτρολογήσετε τη διεύθυνση email σας. Πληκτρολογήστε τη διεύθυνση email σας και πατήστε <Εισαγωγή> να συνεχίσει.
Πατήστε 'Y' και στη συνέχεια πατήστε <Εισαγωγή> για να αποδεχτείτε τους «Όρους Παροχής Υπηρεσιών» του Let’s Encrypt.
Πατήστε 'Y' και στη συνέχεια πατήστε <Εισαγωγή> .
Εκδίδεται πιστοποιητικό Let’s Encrypt SSL. Χρειάζεται λίγος χρόνος για να ολοκληρωθεί.
Σε αυτό το σημείο, εκδίδεται το πιστοποιητικό Let’s Encrypt SSL. Θα πρέπει να εμφανίζεται η πλήρης διαδρομή όπου αποθηκεύονται τα αρχεία πιστοποιητικού SSL. Θα πρέπει επίσης να εμφανίζεται η ημερομηνία λήξης του πιστοποιητικού SSL.
Καταχωρίστε τα πιστοποιητικά Let’s Encrypt SSL χρησιμοποιώντας το Certbot
Μπορείτε να παραθέσετε όλα τα πιστοποιητικά Let’s Encrypt SSL που δημιουργήσατε χρησιμοποιώντας το Certbot με την ακόλουθη εντολή:
$ sudo πιστοποιητικά certbotΌπως μπορείτε να δείτε, παρατίθεται το πιστοποιητικό Let’s Encrypt SSL που δημιουργήθηκε για τον τομέα 'nodekite.com' [1] . Ένα πιστοποιητικό SSL με χαρακτήρες μπαλαντέρ εκδίδεται για το 'nodekite.com' [2] όνομα τομέα. Η ημερομηνία λήξης του πιστοποιητικού είναι 2024-03-20 (ισχύει για 89 ημέρες) [3] . Το πιστοποιητικό και η διαδρομή του ιδιωτικού κλειδιού αναφέρονται επίσης εδώ [4] .
Το Certbot αποθηκεύει όλα τα πιστοποιητικά SSL που δημιουργήσατε για τους τομείς σας στον κατάλογο '/etc/letsencrypt/live' στον αντίστοιχο φάκελο.
$ sudo ls -Rlh / και τα λοιπά / letsencrypt / ζω /
Ανανέωση των πιστοποιητικών Let’s Encrypt SSL με χρήση Certbot
Το Certbot ανανεώνει αυτόματα όλα τα πιστοποιητικά Let’s Encrypt SSL που δημιουργήσατε χρησιμοποιώντας την επικύρωση CloudFlare DNS.
Για να ελέγξετε εάν λειτουργεί η δυνατότητα αυτόματης ανανέωσης των πιστοποιητικών Let’s Encrypt SSL, εκτελέστε την ακόλουθη εντολή:
$ sudo certbot ανανέωση --στεγνό τρέξιμοΗ ενέργεια αυτόματης ανανέωσης προσομοιώνεται για καθένα από τα πιστοποιητικά Let’s Encrypt SSL που δημιουργήσατε.
Εάν οι δοκιμές είναι επιτυχείς, θα λάβετε συγχαρητήρια. Μια επιτυχημένη δοκιμή σημαίνει ότι τα πιστοποιητικά SSL θα ανανεωθούν αυτόματα πριν λήξουν. Δεν θα χρειαστεί να κάνετε κάτι άλλο.
Για να λειτουργήσει η δυνατότητα αυτόματης ανανέωσης Certbot, ο χρονοδιακόπτης συστήματος «cerbot.timer» πρέπει να είναι ενεργοποιημένος και ενεργός στον υπολογιστή/διακομιστή σας.
Μπορείτε να ελέγξετε εάν ο χρονοδιακόπτης συστήματος 'cerbot.timer' είναι ενεργοποιημένος και ενεργός με την ακόλουθη εντολή:
$ sudo systemctl κατάσταση certbot.timerΌπως μπορείτε να δείτε, ο χρονοδιακόπτης συστήματος 'certbot.timer' είναι ενεργοποιημένος (εκκινεί αυτόματα κατά την εκκίνηση) [1] και ενεργό [2] . Το Certbot ελέγχει εάν υπάρχει ανάγκη ανανέωσης οποιουδήποτε πιστοποιητικού SSL μετά από μόλις 11 λεπτά (σύμφωνα με το παρακάτω στιγμιότυπο οθόνης) και ανανεώνει τα πιστοποιητικά SSL που πρόκειται να λήξουν [3] .
Για να ελέγξετε μη αυτόματα εάν κάποιο πιστοποιητικό SSL πρόκειται να λήξει και να ανανεώσετε τα πιστοποιητικά SSL που λήγουν, εκτελέστε την ακόλουθη εντολή:
$ sudo certbot ανανέωσηΣτην περίπτωσή μας, κανένα πιστοποιητικό SSL δεν πρόκειται να λήξει. Έτσι, το Certbot δεν προσπάθησε να ανανεώσει κανένα πιστοποιητικό SSL.
Για να αναγκάσετε το Certbot να ανανεώσει το πιστοποιητικό SSL ενός συγκεκριμένου τομέα (ας πούμε *.nodekite.com), εκτελέστε την ακόλουθη εντολή:
$ sudo certbot οπωσδήποτε --δύναμη-ανανέωση -ρε * .nodekite.comΠατήστε «1» και πατήστε <Εισαγωγή> για να επιλέξετε την πρώτη επιλογή (για επικύρωση DNS χρησιμοποιώντας CloudFlare DNS).
Το πιστοποιητικό SSL θα πρέπει να ανανεωθεί.
συμπέρασμα
Για να αποκτήσετε ένα πιστοποιητικό Let’s Encrypt SSL χρησιμοποιώντας την επικύρωση CloudFlare DNS χρησιμοποιώντας το Certbot, χρειάζεστε πρόσβαση στο διακριτικό API CloudFlare. Σε αυτό το άρθρο, σας δείξαμε πώς να δημιουργήσετε ένα διακριτικό API CloudFlare για τον τομέα σας και να το αποθηκεύσετε με ασφάλεια στον υπολογιστή/διακομιστή σας, ώστε να έχετε πρόσβαση σε αυτό με το Certbot όταν χρειάζεται. Σας δείξαμε επίσης πώς να εγκαταστήσετε το Certbot και την προσθήκη Certbot CloudFlare DNS στις πιο δημοφιλείς διανομές Linux. Σας δείξαμε πώς να δημιουργήσετε τα πιστοποιητικά SSL με χαρακτήρες μπαλαντέρ Let’s Encrypt καθώς και πιστοποιητικά SSL για μεμονωμένους τομείς χρησιμοποιώντας επικύρωση Certbot και CloudFlare DNS. Τέλος, σας δείξαμε πώς να ανανεώνετε τα πιστοποιητικά Let’s Encrypt SSL χρησιμοποιώντας το Certbot αυτόματα και μη αυτόματα.