Harvard CS50 Web HTTP
Πίνακας περιεχομένων:
- Προϋποθέσεις
- Εγκαταστήστε το Certbot
- Δημιουργήστε ομάδα ισχυρών Dh (Diffie-Hellman)
- Αποκτώντας πιστοποιητικό SSL
- Αυτόματη ανανέωση Ας κρυπτογραφήσουμε το πιστοποιητικό SSL
- συμπέρασμα
Το Let's Encrypt είναι μια αρχή πιστοποίησης που δημιουργήθηκε από την Ομάδα Ασφαλείας Ασφάλειας στο Internet (ISRG). Παρέχει δωρεάν πιστοποιητικά SSL μέσω πλήρως αυτοματοποιημένης διαδικασίας που αποσκοπεί στην εξάλειψη της δημιουργίας μη αυτόματων πιστοποιητικών, επικύρωσης, εγκατάστασης και ανανέωσης.
Τα πιστοποιητικά που εκδίδονται από το Let's Encrypt είναι εμπιστευμένα από όλα τα μεγάλα προγράμματα περιήγησης σήμερα.
Σε αυτό το σεμινάριο, θα παρέχουμε οδηγίες βήμα προς βήμα σχετικά με τον τρόπο εξασφάλισης του Apache με το Let's Encrypt χρησιμοποιώντας το εργαλείο certbot στο Ubuntu 18.04.
Προϋποθέσεις
Βεβαιωθείτε ότι πληρούνται οι ακόλουθες προϋποθέσεις πριν συνεχίσετε με αυτό το σεμινάριο:
- Το όνομα τομέα που δείχνει στον δημόσιο διακομιστή IP σας. Θα χρησιμοποιήσουμε το
example.com. Έχετε εγκαταστήσει Apache με έναν εικονικό κεντρικό υπολογιστή φιλοξενίας για τον τομέα σας.
Εγκαταστήστε το Certbot
Το Certbot είναι ένα πλήρως εξοπλισμένο και εύκολο στη χρήση εργαλείο που μπορεί να αυτοματοποιήσει τις εργασίες για την απόκτηση και την ανανέωση του Let's Encrypt SSL certificates και της διαμόρφωσης web servers. Το πακέτο certbot περιλαμβάνεται στις προεπιλεγμένες αποθήκες του Ubuntu.
Ενημερώστε τη λίστα των πακέτων και εγκαταστήστε το πακέτο certbot:
sudo apt update
sudo apt install certbot
Δημιουργήστε ομάδα ισχυρών Dh (Diffie-Hellman)
Η ανταλλαγή πλήκτρων Diffie-Hellman (DH) είναι μια μέθοδος ασφαλούς ανταλλαγής κρυπτογραφικών κλειδιών πάνω σε ένα μη ασφαλισμένο κανάλι επικοινωνίας. Θα δημιουργήσουμε ένα νέο σύνολο παραμέτρων 2048 bit DH για την ενίσχυση της ασφάλειας:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Αν θέλετε, μπορείτε να αλλάξετε το μέγεθος έως και 4096 bits, αλλά στην περίπτωση αυτή, η παραγωγή μπορεί να διαρκέσει περισσότερο από 30 λεπτά, ανάλογα με την εντροπία του συστήματος.
Αποκτώντας πιστοποιητικό SSL
Για να αποκτήσετε ένα πιστοποιητικό SSL για τον τομέα, θα χρησιμοποιήσουμε την προσθήκη Webroot που λειτουργεί δημιουργώντας ένα προσωρινό αρχείο για την επικύρωση του ζητούμενου τομέα στο
${webroot-path}/.well-known/acme-challenge
του
${webroot-path}/.well-known/acme-challenge
. Ο διακομιστής "Ας κρυπτογραφήσει" κάνει αιτήσεις HTTP στο προσωρινό αρχείο για να επιβεβαιώσει ότι ο ζητούμενος τομέας επιλύεται στο διακομιστή όπου τρέχει το certbot.
Για να γίνει πιο απλό, θα χαρτογραφήσουμε όλα τα αιτήματα HTTP για
.well-known/acme-challenge
σε ένα μόνο κατάλογο,
/var/lib/letsencrypt
.
Οι ακόλουθες εντολές θα δημιουργήσουν τον κατάλογο και θα καταστούν εγγράψιμες για τον διακομιστή Apache.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp www-data /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
Για να αποφύγετε την αναπαραγωγή κώδικα, δημιουργήστε τα ακόλουθα δύο αποσπάσματα διαμορφώσεων:
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff # Requires Apache >= 2.4 SSLCompression off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" # Requires Apache >= 2.4.11 SSLSessionTickets Off SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
Το απόσπασμα παραπάνω χρησιμοποιεί τα τσιπς που συνιστώνται από το Cipherli.st, επιτρέπει την OCSP Συρραφή, το HTTP Strict Transport Security (HSTS) και επιβάλλει ελάχιστες κεφαλίδες HTTP με εστίαση στην ασφάλεια.
Πριν ενεργοποιήσετε τα αρχεία διαμόρφωσης, βεβαιωθείτε ότι και τα
mod_ssl
και
mod_headers
είναι ενεργοποιημένα εκδίδοντας:
sudo a2enmod ssl
sudo a2enmod headers
Στη συνέχεια, ενεργοποιήστε τα αρχεία ρυθμίσεων SSL εκτελώντας τις ακόλουθες εντολές:
sudo a2enconf letsencrypt
sudo a2enconf ssl-params
Ενεργοποιήστε τη λειτουργική μονάδα HTTP / 2, η οποία θα κάνει τους ιστότοπους σας ταχύτερους και πιο στιβαρούς:
sudo a2enmod
Επαναφόρτωση της διαμόρφωσης Apache για να εφαρμοστούν οι αλλαγές:
sudo systemctl reload apache2
Τώρα, μπορούμε να εκτελέσουμε το εργαλείο Certbot με το plugin webroot και να αποκτήσουμε τα αρχεία πιστοποιητικών SSL πληκτρολογώντας:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Εάν το πιστοποιητικό SSL έχει ληφθεί με επιτυχία, η certbot θα εκτυπώσει το ακόλουθο μήνυμα:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2018-10-28. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Τώρα που έχετε τα αρχεία πιστοποιητικών, επεξεργαστείτε τη διαμόρφωση εικονικού κεντρικού υπολογιστή ως εξής:
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
Με τη παραπάνω διαμόρφωση, αναγκάζουμε το HTTPS και ανακατευθύνουμε από το www σε μη-www έκδοση. Χωρίς να ρυθμίσετε τη διαμόρφωση ανάλογα με τις ανάγκες σας.
Επαναφόρτωση της υπηρεσίας Apache για να εφαρμοστούν οι αλλαγές:
sudo systemctl reload apache2
Τώρα μπορείτε να ανοίξετε τον ιστότοπό σας χρησιμοποιώντας το
https://
και θα παρατηρήσετε ένα εικονίδιο πράσινης κλειδαριάς.

Αυτόματη ανανέωση Ας κρυπτογραφήσουμε το πιστοποιητικό SSL
Τα πιστοποιητικά της Κρυπτογράφησης ισχύουν για 90 ημέρες. Για να ανανεώσουν αυτόματα τα πιστοποιητικά πριν λήξουν, το πακέτο certbot δημιουργεί ένα cronjob που τρέχει δύο φορές την ημέρα και ανανεώνει αυτόματα κάθε πιστοποιητικό 30 ημέρες πριν από τη λήξη του.
Μετά την ανανέωση του πιστοποιητικού πρέπει επίσης να φορτώσουμε ξανά την υπηρεσία Apache. Προσθέστε
--renew-hook "systemctl reload apache2"
στο αρχείο
/etc/cron.d/certbot
έτσι ώστε να μοιάζει με το ακόλουθο:
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload apache2"
Για να ελέγξετε τη διαδικασία ανανέωσης, μπορείτε να χρησιμοποιήσετε το διακόπτη certbot -
--dry-run
:
sudo certbot renew --dry-run
Εάν δεν υπάρχουν σφάλματα, σημαίνει ότι η διαδικασία ανανέωσης ήταν επιτυχής.
συμπέρασμα
Σε αυτό το σεμινάριο, χρησιμοποιήσατε το Πιστοποιητικό Let's Encrypt client certbot, για να κατεβάσετε τα πιστοποιητικά SSL για τον τομέα σας. Επίσης, δημιουργήσατε αποσπάσματα Apache για να αποφύγετε την αναπαραγωγή κώδικα και να διαμορφώσετε το Apache για να χρησιμοποιήσετε τα πιστοποιητικά. Στο τέλος του σεμιναρίου, έχετε δημιουργήσει ένα cronjob για την αυτόματη ανανέωση του πιστοποιητικού.
apache ubuntu ας κρυπτογραφήσουμε το certbot sslΑυτή η ανάρτηση αποτελεί μέρος της σειράς how-to-install-lamp-stack-on-ubuntu-18-04.
Άλλες θέσεις αυτής της σειράς:
• Πώς να εγκαταστήσετε το Apache στο Ubuntu 18.04 • Πώς να ρυθμίσετε τους Apache Virtual Hosts στο Ubuntu 18.04 • Ασφαλής Apache με την Κρυπτογράφηση για το Ubuntu 18.04 • Πώς να εγκαταστήσετε MySQL στο Ubuntu 18.04 • Πώς να εγκαταστήσετε την PHP στο Ubuntu 18.04Ασφαλίστε την apache με την κρυπτογράφηση των centos 7
Σε αυτό το σεμινάριο θα καλύψουμε τα βήματα που απαιτούνται για την εγκατάσταση ενός ελεύθερου Let's Encrypt SSL certificate σε έναν κεντρικό υπολογιστή 7 που εκτελεί Apache ως διακομιστή ιστού.
Ασφαλίστε την apache με την κρυπτογράφηση των centos 8
Αυτό το σεμινάριο εξηγεί τον τρόπο εγκατάστασης ενός ελεύθερου Let's Encrypt SSL certificate στο CentOS 8 που εκτελεί Apache ως διακομιστή ιστού. Θα χρησιμοποιήσουμε το εργαλείο certbot για να λάβουμε και να ανανεώσουμε τα πιστοποιητικά.
Ασφαλίστε την apache με την κρυπτογράφηση του debian 9
Αυτό το σεμινάριο θα σας καθοδηγήσει στη διαδικασία απόκτησης μιας δωρεάν κρυπτογράφησης Let's Encrypt χρησιμοποιώντας το εργαλείο certbot στο Debian 9. Θα δείξουμε επίσης πώς να διαμορφώσετε το Apache για να χρησιμοποιήσετε το νέο πιστοποιητικό SSL και να ενεργοποιήσετε το HTTP /







