Πώς να ρυθμίσετε το "Να κρυπτογραφήσουμε" Δωρεάν πιστοποιητικό SSL σε Nginx (Ubuntu)
Εάν έχετε διαβάσει πολλά άρθρα σχετικά με τις συμβουλές για την προστασία της ιδιωτικής ζωής, θα βρείτε σίγουρα μια συμβουλή που σας ζητά να εγκαταστήσετε την επέκταση "HTTPS παντού" έτσι ώστε να σας ανακατευθύνει αυτόματα στην έκδοση HTTPS του ιστότοπου όποτε είναι δυνατόν . Το κακό είναι ότι η επέκταση HTTPS παντού λειτουργεί μόνο όταν ο ιστότοπος που επισκέπτεστε έχει εφαρμόσει το SSL και για τους περισσότερους υπεύθυνους για webmasters αυτό μπορεί να είναι δύσκολο (και δαπανηρό) καθήκον από μόνο του. Ευτυχώς, με το κίνημα Ας κρυπτογραφήσουμε, είναι ευκολότερο για τους webmasters να προσθέσουν SSL πιστοποιητικά στους ιστοτόπους τους τώρα.
Στο παρελθόν (και επί του παρόντος), η εγκατάσταση ενός πιστοποιητικού SSL απαιτεί πρώτα να δημιουργήσετε ένα ιδιωτικό κλειδί στον διακομιστή σας, στη συνέχεια να αγοράσετε ένα πιστοποιητικό SSL από την Αρχή Πιστοποίησης (το οποίο μπορεί να είναι ακριβό) και τέλος να το ορίσετε στον διακομιστή . Υπάρχει πολλή τεχνική εμπλοκή στη διαδικασία, και δεν το κάνουμε σωστά θα καταστήσει το πιστοποιητικό SSL άχρηστο. Με το έργο Let's Encrypt, μπορείτε γρήγορα να προσθέσετε ένα πιστοποιητικό SSL στους ιστότοπούς τους χωρίς κανένα κόστος. Και υποστηριζόμενοι από μεγάλους παίκτες όπως το Mozilla, το Akamai, το Cisco, το EFFIf εσείς και το Google, υποστηρίζεται από τα περισσότερα προγράμματα περιήγησης και λειτουργικά συστήματα.
Σε αυτό το σεμινάριο θα περάσουμε τα βήματα για να ρυθμίσετε το Πιστοποιητικό Ασφαλούς SSL στο διακομιστή Nginx. Χρησιμοποιούμε ένα διακομιστή Ubuntu 14.04 για αυτό το σεμινάριο και υποθέτουμε ότι χρησιμοποιείτε ένα λειτουργικό διακομιστή Nginx Ubuntu. Η εντολή ενδέχεται να διαφέρει για το διακομιστή Ubuntu 16.04.
Εγκαταστήστε Ας κρυπτογραφήσουμε
Κατ 'αρχάς, για να εγκαταστήσετε το Let's Encrypt, θα χρειαστείτε git
να το κλωνοποιήσετε από το git repository του. Εγκαταστήστε το git με την ακόλουθη εντολή:
sudo apt-get install git bc
Μόλις εγκατασταθεί, κλωνοποιήστε το αποθετήριο του Let's Encrypt's:
sudo git κλώνος https://github.com/letsencrypt/letsencrypt/ opt / letsencrypt
Ρύθμιση του περιβάλλοντος
Πριν προχωρήσουμε στην εγκατάσταση και ρύθμιση του πιστοποιητικού SSL, είναι σημαντικό να επιτρέπεται η πρόσβαση στο φάκελο " .well-known
" στον κεντρικό κατάλογο του ιστού. Από προεπιλογή, όλα τα αρχεία και οι φάκελοι με "." Μπροστά από το όνομα αρχείου είναι κρυφό και δεν είναι προσβάσιμοι στο κοινό. Ωστόσο, σε αυτήν την περίπτωση θα χρειαστεί να δώσετε άδεια στο κοινό για να αποκτήσετε πρόσβαση στον .well-known
φάκελο, καθώς αυτό είναι όπου το Let's Encrypt θα αποθηκεύσει ένα ειδικό αρχείο για επικύρωση.
Προχωρήστε στο φάκελο διαμόρφωσης του ιστοτόπου Nginx και ανοίξτε το (αν έχετε ένα προσαρμοσμένο αρχείο ρύθμισης παραμέτρων για τον ιστότοπό σας) ή χρησιμοποιήστε την προεπιλογή:
cd / etc / nginx / sites-διαθέσιμη sudo nano προεπιλογή
Προσθέστε τις ακόλουθες γραμμές στο μπλοκ διακομιστή:
τοποθεσία ~ /\.well- γνωστό {επιτρέψτε σε όλους; }}
Αποθηκεύστε (Ctrl + O) και κλείστε (Ctrl + x) το αρχείο ρυθμίσεων.
Δοκιμάστε τη διαμόρφωση Nginx:
sudo nginx-t
Εάν όλες οι ρυθμίσεις παραμέτρων λειτουργούν σωστά, επαναφορτώστε τη διαμόρφωση:
sudo υπηρεσία nginx reload
Δημιουργήστε ένα πιστοποιητικό SSL
Τώρα που ολοκληρώσατε τη διαμόρφωση Nginx, το επόμενο πράγμα είναι να εγκαταστήσετε το πιστοποιητικό SSL.
Μεταβείτε στο φάκελο "Ας κρυπτογραφήσουμε":
cd / opt / letsencrypt
Εκτελέστε την ακόλουθη εντολή για τη δημιουργία του πιστοποιητικού:
./letsencrypt-auto certonly - ένα webroot --webroot-path = / usr / share / nginx / html -d example.com
Υπάρχουν μερικά πράγματα που πρέπει να αλλάξετε εδώ:
- Αλλάξτε τη
webroot-path
στηνwebroot-path
του εγγράφου του ιστότοπού σας. Η προεπιλογή είναι "/ user / share / nginx / html", αλλά η διαμόρφωσή σας μπορεί να διαφέρει. - Αλλάξτε το "example.com" στο δικό σας domain name. Σημειώστε ότι "example.com" και "www.example.com" είναι δύο διαφορετικοί τομείς. Εάν θέλετε το πιστοποιητικό να υποστηρίζει πολλούς τομείς, απλώς προσθέστε το
-d example1.com
στο τέλος της εντολής. Για παράδειγμα, για να ρυθμίσετε ένα πιστοποιητικό SSL για τους τομείς "example.com", "www.example.com", "example1.com" και "www.example1.com", χρησιμοποιήστε την ακόλουθη εντολή:
./letsencrypt-auto certonly -a webroot -webroot-path = / usr / share / nginx / html -d example.com -d www.example.com -d παράδειγμα1.com -d www.example1.com
Κατά την πρώτη εκτέλεση, το σενάριο θα εγκαταστήσει ένα σωρό αρχεία Python στο σύστημά σας. Μόλις ολοκληρωθεί, θα ξεκινήσει η διαδικασία δημιουργίας πιστοποιητικού. Πρώτα θα ζητήσετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου σας:
Στη συνέχεια, θα σας ζητηθεί να διαβάσετε τους Όρους Παροχής Υπηρεσιών στην ιστοσελίδα "Ας κρυπτογραφήσουμε". Επιλέξτε "Συμφωνώ".
Εάν εμφανιστεί το ακόλουθο μήνυμα:
ΣΗΜΑΝΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ: - Συγχαρητήρια! Το πιστοποιητικό και η αλυσίδα σας αποθηκεύτηκαν στο /etc/letsencrypt/live/example.com/fullchain.pem. Το cert θα λήξει στις 2016-10-02. Για να αποκτήσετε μια νέα ή τροποποιημένη έκδοση αυτού του πιστοποιητικού στο μέλλον, απλώς εκτελέστε ξανά το letsencrypt-auto. Για μη ανανέωση της αλληλεπίδρασης * όλων * των πιστοποιητικών σας, εκτελέστε "letsencrypt-auto renew" - Αν σας αρέσει η Certbot, παρακαλούμε να υποστηρίξετε το έργο μας με: Δωρεά σε ISRG / Ας κρυπτογραφήσουμε: https://letsencrypt.org/donate Δωρεά EFF: https://eff.org/donate-le
Αυτό σημαίνει ότι έχετε δημιουργήσει με επιτυχία ένα πιστοποιητικό SSL για τους ιστότοπούς σας. Εάν αντίθετα δείτε ένα μήνυμα σφάλματος, τότε διορθώστε το σφάλμα και δοκιμάστε ξανά.
Ενεργοποίηση του πιστοποιητικού SSL για τον ιστότοπό σας
Τώρα που έχετε δημιουργήσει το πιστοποιητικό SSL, είναι καιρός να το ενεργοποιήσετε για τον ιστότοπό σας.
Επιστρέψτε στο φάκελο διαμόρφωσης Nginx και ανοίξτε το αρχείο διαμόρφωσης του ιστότοπου:
cd / etc / nginx / sites-διαθέσιμη sudo nano προεπιλογή
Δημιουργήστε ένα νέο μπλοκ διακομιστή και προσθέστε την ακόλουθη διαμόρφωση στο μπλοκ:
διακομιστής {server_name example.com www.example.com; ακούστε 443 ssl; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; }}
Αποθηκεύστε και κλείστε το αρχείο.
Σημείωση : Τα παραπάνω είναι μια απλοποιημένη έκδοση του μπλοκ διαμόρφωσης Nginx. Θα πρέπει να προσθέσετε τη δική σας προσαρμοσμένη διαμόρφωση στο μπλοκ.
Τέλος, δοκιμάστε τη διαμόρφωση:
sudo nginx-t
Εάν όλα είναι καλά, επαναλάβετε τη φόρτωση του Nginx:
sudo υπηρεσία nginx reload
Αυτό είναι. Έχετε δημιουργήσει με επιτυχία ένα πιστοποιητικό SSL για τους ιστότοπούς σας. Τώρα μπορείτε να φορτώσετε την έκδοση "https" της διεύθυνσης URL σας για να την δείτε σε δράση.
Αυτόματη ανανέωση α Να κρυπτογραφήσουμε το πιστοποιητικό SSL
Σε αντίθεση με τα περισσότερα εμπορικά πιστοποιητικά SSL που ισχύουν για τουλάχιστον ένα έτος, το πιστοποιητικό SSL της Let's Encrypt ισχύει μόνο για τρεις μήνες. Μετά από αυτό το διάστημα θα πρέπει να ανανεώσετε για να συνεχίσετε να το χρησιμοποιείτε. Το Let's Encrypt συνοδεύεται από μια επιλογή renew
, ώστε να μπορείτε να ανανεώνετε εύκολα τα πιστοποιητικά σας χωρίς να ξαναπαίσετε ολόκληρη την εγκατάσταση. Οι παρακάτω οδηγίες δείχνουν πώς να ρυθμίσετε μια εργασία cron για να ανανεώσετε αυτόματα το πιστοποιητικό SSL.
Ακόμα στο διακομιστή σας, ανοίξτε το crontab:
sudo crontab -e
Προσθέστε τις ακόλουθες γραμμές:
00 0 * * 1 / opt / letsencrypt / letsencrypt-αυτόματη ανανέωση >> /var/log/le-renew.log 05 0 * * 1 /etc/init.d/nginx reload
Οι παραπάνω γραμμές θα ελέγχουν την ημερομηνία λήξης των πιστοποιητικών σας SSL κάθε Δευτέρα στις 12 το πρωί και θα τις ανανεώνουν αν είναι κοντά στη λήξη τους. Επίσης, θα φορτώσει ξανά το Nginx (στις 12.05 π.μ.) για να βεβαιωθεί ότι το ανανεωμένο πιστοποιητικό είναι σε χρήση.
Αποθηκεύστε και κλείστε το crontab.
συμπέρασμα
Εάν εκτελείτε έναν μικρό ιστότοπο και επιθυμείτε να προσθέσετε SSL στον ιστότοπό σας, το Let's Encrypt είναι μια μεγάλη επιλογή για να προσθέσετε αξιοπιστία στον ιστότοπό σας. Είναι (σχετικά) εύκολο να εγκατασταθεί και να κοστίσει τίποτα (δωρεάν, όπως στη μπύρα), οπότε δεν υπάρχει κανένας λόγος να μην το χρησιμοποιήσετε. Ωστόσο, δεδομένου ότι παρέχει μόνο πιστοποιητικό DV (το βασικότερο είδος πιστοποιητικού SSL) για τις εταιρείες που απαιτούν πιστοποιητικά SSL (OV) ή πιστοποιητικά SSL Extended Validation (EV), ένα εμπορικό πιστοποιητικό SSL είναι πιθανό το δρόμο για να πάει.
Internet2 - HTTPS