Προαπαιτούμενα
Εγκαταστήστε το Certbot
Διαμόρφωση Nginx
Λήψη πιστοποιητικού Let's Encrypt SSL
Αυτοματοποίηση ανανέωσης
Βελτιωμένη διαμόρφωση
Το Let's Encrypt είναι μια Αρχή έκδοσης πιστοποιητικών (CA) που παρέχει δωρεάν πιστοποιητικά SSL με έναν αυτοματοποιημένο πελάτη. Χρησιμοποιώντας ένα πιστοποιητικό Let's Encrypt SSL, μπορείτε να κρυπτογραφήσετε την κίνηση μεταξύ του ιστότοπού σας και των επισκεπτών σας. Η όλη διαδικασία είναι απλή και οι ανανεώσεις μπορούν να αυτοματοποιηθούν. Επίσης, σημειώστε ότι η εγκατάσταση ή η ανανέωση των πιστοποιητικών δεν προκαλεί διακοπές λειτουργίας.
Σε αυτό το σεμινάριο, θα χρησιμοποιήσουμε το Certbot για να αποκτήσουμε, να εγκαταστήσουμε και να ανανεώσουμε αυτόματα το πιστοποιητικό SSL σας. Το Certbot αναπτύσσεται ενεργά από το Electronic Frontier Foundation (EFF) και είναι ο προτεινόμενος πελάτης για το Let's Encrypt.
Προαπαιτούμενα
- Ένα παράδειγμα Vultr που εκτελεί το Ubuntu 16.04
- Ένα καταχωρημένο όνομα τομέα που οδηγεί στον διακομιστή σας
- Nginx
Εγκαταστήστε το Certbot
Για να αποκτήσετε ένα πιστοποιητικό Let's Encrypt SSL, πρέπει να εγκαταστήσετε τον πελάτη Certbot στον διακομιστή σας.
Προσθέστε το αποθετήριο. Πατήστε το ENTERπλήκτρο όταν σας ζητηθεί να αποδεχτείτε.
add-apt-repository ppa:certbot/certbot
Ενημερώστε τη λίστα πακέτων.
apt-get update
Συνεχίστε εγκαθιστώντας το Certbot και το πακέτο Nginx του Certbot.
apt-get -y install python-certbot-nginx
Διαμόρφωση Nginx
Το Certbot ρυθμίζει αυτόματα το SSL για το Nginx, αλλά για να το κάνει αυτό πρέπει να βρει το μπλοκ διακομιστή στο αρχείο διαμόρφωσης Nginx. Αυτό το κάνει αντιστοιχίζοντας την server_nameοδηγία στο αρχείο διαμόρφωσης με το όνομα τομέα για τον οποίο ζητάτε πιστοποιητικό.
Εάν χρησιμοποιείτε το προεπιλεγμένο αρχείο διαμόρφωσης, /etc/nginx/sites-available/defaultανοίξτε το με ένα πρόγραμμα επεξεργασίας κειμένου όπως nanoκαι βρείτε την server_nameοδηγία. Αντικαταστήστε την υπογράμμιση, _, με τα δικά σας ονόματα τομέα:
nano /etc/nginx/sites-available/default
Μετά την επεξεργασία του αρχείου διαμόρφωσης, η server_nameοδηγία θα πρέπει να έχει την εξής μορφή. Σε αυτό το παράδειγμα, υποθέτω ότι ο τομέας σας είναι example.com και ότι ζητάτε πιστοποιητικό για example.com και www.example.com.
server_name example.com www.example.com;
Συνεχίστε επαληθεύοντας τη σύνταξη των επεξεργασιών σας.
nginx -t
Εάν η σύνταξη είναι σωστή, επανεκκινήστε το Nginx για να χρησιμοποιήσετε τη νέα διαμόρφωση. Εάν λάβετε μηνύματα σφάλματος, ανοίξτε ξανά το αρχείο διαμόρφωσης και ελέγξτε για τυχόν τυπογραφικά λάθη και, στη συνέχεια, δοκιμάστε ξανά.
systemctl restart nginx
Λήψη πιστοποιητικού Let's Encrypt SSL
Η ακόλουθη εντολή θα λάβει ένα πιστοποιητικό για εσάς. Επεξεργαστείτε τη διαμόρφωση Nginx για να τη χρησιμοποιήσετε και φορτώστε ξανά το Nginx.
certbot --nginx -d example.com -d www.example.com
Μπορείτε επίσης να ζητήσετε πιστοποιητικό SSL για πρόσθετους τομείς. Απλώς προσθέστε την -dεπιλογή " " όσες φορές θέλετε.
certbot --nginx -d example.com -d www.example.com -d example.net -d example.net
Σε περίπτωση που θέλετε να αποκτήσετε μόνο το πιστοποιητικό από το Let's Encrypt χωρίς να το εγκαταστήσετε αυτόματα, μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή. Αυτό κάνει προσωρινές αλλαγές στη διαμόρφωση του Nginx για την απόκτηση του πιστοποιητικού και τις επαναφέρει μόλις γίνει λήψη του πιστοποιητικού.
certbot --nginx certonly -d example.com -d www.example.com
Εάν χρησιμοποιείτε το Certbot για πρώτη φορά, θα σας ζητηθεί να εισαγάγετε μια διεύθυνση email και να συμφωνήσετε με τους όρους παροχής υπηρεσιών. Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου θα χρησιμοποιηθεί για ειδοποιήσεις ανανέωσης και ασφάλειας. Αφού δώσετε μια διεύθυνση email, το Certbot θα ζητήσει ένα πιστοποιητικό από το Let's Encrypt και θα εκτελέσει μια πρόκληση για να επαληθεύσει ότι ελέγχετε τον εν λόγω τομέα.
Εάν το Certbot μπορεί να αποκτήσει ένα πιστοποιητικό SSL, θα σας ρωτήσει πώς θέλετε να διαμορφώσετε τις HTTPSρυθμίσεις σας . Μπορείτε είτε να ανακατευθύνετε τους επισκέπτες που επισκέπτονται τον ιστότοπό σας μέσω μιας μη ασφαλούς σύνδεσης είτε να τους επιτρέψετε να έχουν πρόσβαση σε αυτόν μέσω της μη ασφαλούς σύνδεσης. Αυτό θα πρέπει συνήθως να είναι ενεργοποιημένο επειδή διασφαλίζει ότι οι επισκέπτες έχουν πρόσβαση μόνο στην προστατευμένη με SSL έκδοση του ιστότοπού σας. Επιλέξτε την επιλογή σας και μετά πατήστε ENTER.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Τέλος, το Certbot θα επιβεβαιώσει ότι η διαδικασία ήταν επιτυχής και πού αποθηκεύονται τα πιστοποιητικά σας. Τα πιστοποιητικά σας έχουν γίνει λήψη και εγκατάσταση.
Αυτοματοποίηση ανανέωσης
Επειδή το Let's Encrypt είναι μια δωρεάν αρχή έκδοσης πιστοποιητικών και για να ενθαρρύνουμε τους χρήστες να αυτοματοποιήσουν τη διαδικασία ανανέωσης, τα πιστοποιητικά ισχύουν μόνο για 90 ημέρες. Το Certbot θα φροντίσει για την αυτόματη ανανέωση των πιστοποιητικών. Το κάνει τρέχοντας certbot renewδύο φορές την ημέρα μέσω systemd.
Μπορείτε να ελέγξετε ότι η αυτόματη ανανέωση λειτουργεί εκτελώντας αυτήν την εντολή.
certbot renew --dry-run
Μπορείτε επίσης να ανανεώσετε μη αυτόματα το πιστοποιητικό σας ανά πάσα στιγμή εκτελώντας την ακόλουθη εντολή.
certbot renew
Βελτιωμένη διαμόρφωση
Οι παραπάνω εντολές λαμβάνουν και εγκαθιστούν το πιστοποιητικό SSL με μια διαμόρφωση που είναι κατάλληλη για τις περισσότερες περιπτώσεις. Εάν θέλετε να εφαρμόσετε προηγμένα μέτρα ασφαλείας για τον ιστότοπό σας, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να αποκτήσετε το πιστοποιητικό.
certbot --nginx --rsa-key-size 4096 --must-staple -d example.com -d www.example.com
Το --rsa-key-size 4096χρησιμοποιεί ένα κλειδί RSA 4096-bit αντί για 2048 bit κλειδί, το οποίο είναι πιο ασφαλές. Το μειονέκτημα αυτού είναι ότι ένα μεγαλύτερο κλειδί έχει ως αποτέλεσμα μια μικρή επιβάρυνση απόδοσης. Επιπλέον, παλαιότερα προγράμματα περιήγησης και συσκευές ενδέχεται να μην υποστηρίζουν κλειδιά RSA 4096-bit.
Η --must-stapleπροσθέτει την επέκταση Δέσιμο OCSP Πρέπει να του πιστοποιητικού και διαμορφώνει Nginx για OCSP συρραφή. Αυτή η επέκταση επιτρέπει στα προγράμματα περιήγησης να επαληθεύουν ότι το πιστοποιητικό σας δεν έχει ανακληθεί και ότι μπορεί να είναι αξιόπιστο. Ωστόσο, δεν υποστηρίζουν όλα τα προγράμματα περιήγησης αυτήν τη δυνατότητα.