Android

Ασφαλίστε την apache με την κρυπτογράφηση του debian 9

73. Ασφαλίστε το PC σας με το Norton 360

73. Ασφαλίστε το PC σας με το Norton 360

Πίνακας περιεχομένων:

Anonim

Το Let's Encrypt είναι μια αρχή πιστοποίησης που δημιουργήθηκε από την Ομάδα Ασφαλείας Ασφάλειας στο Internet (ISRG). Παρέχει δωρεάν πιστοποιητικά SSL μέσω πλήρως αυτοματοποιημένης διαδικασίας που αποσκοπεί στην εξάλειψη της δημιουργίας μη αυτόματων πιστοποιητικών, επικύρωσης, εγκατάστασης και ανανέωσης.

Τα πιστοποιητικά που εκδίδονται από το Let's Encrypt είναι έγκυρα για 90 ημέρες από την ημερομηνία έκδοσης και σήμερα είναι αξιόπιστα από όλα τα μεγάλα προγράμματα περιήγησης.

Αυτό το σεμινάριο θα σας καθοδηγήσει στη διαδικασία απόκτησης μιας δωρεάν κρυπτογράφησης Let's Encrypt χρησιμοποιώντας το εργαλείο certbot στο Debian 9. Θα δείξουμε επίσης πώς να διαμορφώσετε το Apache για να χρησιμοποιήσετε το νέο πιστοποιητικό SSL και να ενεργοποιήσετε το HTTP / 2.

Προϋποθέσεις

Βεβαιωθείτε ότι πληρούνται οι ακόλουθες προϋποθέσεις πριν συνεχίσετε με αυτό το σεμινάριο:

  • Συνδεθήκατε ως χρήστης με δικαιώματα sudo. Έχετε ένα όνομα τομέα που δείχνει στον κεντρικό υπολογιστή διακομιστή IP σας. Θα χρησιμοποιήσουμε το example.com .Apache εγκατεστημένο. Ένας εικονικός κεντρικός υπολογιστής apache για τον τομέα σας. Μπορείτε να ακολουθήσετε αυτές τις οδηγίες για λεπτομέρειες σχετικά με τον τρόπο δημιουργίας ενός.

Εγκαταστήστε το Certbot

Το Certbot είναι ένα πλήρως εξοπλισμένο και εύκολο στη χρήση εργαλείο που μπορεί να αυτοματοποιήσει τις εργασίες για την απόκτηση και την ανανέωση των Πιστοποιητικών Ασφαλίσεων SSL. Το πακέτο certbot περιλαμβάνεται στα προεπιλεγμένα αποθετήρια του Debian.

Ενημερώστε τη λίστα των πακέτων και εγκαταστήστε το πακέτο 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 . Ο διακομιστής "Ας κρυπτογραφήσει" κάνει αιτήσεις 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

Για να αποφύγετε την αναπαραγωγή κώδικα, δημιουργήστε τα ακόλουθα δύο αποσπάσματα διαμορφώσεων:

/etc/apache2/conf-available/letsencrypt.conf

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 /etc/apache2/conf-available/ssl-params.conf

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

Ενεργοποιήστε τη λειτουργική μονάδα HTTP / 2, η οποία θα κάνει τους ιστότοπους σας ταχύτερους και πιο στιβαρούς:

sudo a2enmod

Ενεργοποιήστε τα αρχεία ρυθμίσεων SSL εκτελώντας τις ακόλουθες εντολές:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

Επαναφόρτωση της διαμόρφωσης 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: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2019-01-17. 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 lose your account credentials, you can recover through e-mails sent to [email protected]. - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:

Τώρα που έχετε τα αρχεία πιστοποιητικών, επεξεργαστείτε τη διαμόρφωση εικονικού κεντρικού υπολογιστή ως εξής:

/etc/apache2/sites-available/example.com.conf

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 έτσι ώστε να μοιάζει με το ακόλουθο:

/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

Εάν δεν υπάρχουν σφάλματα, σημαίνει ότι η διαδικασία ανανέωσης ήταν επιτυχής.

συμπέρασμα

Σε αυτό το σεμινάριο, χρησιμοποιήσατε το Certbot για να αποκτήσετε πιστοποιητικά SSL για τον τομέα σας. Επίσης, δημιουργήσατε αποσπάσματα Apache για να αποφύγετε την αναπαραγωγή κώδικα και να διαμορφώσετε το Apache για να χρησιμοποιήσετε τα πιστοποιητικά. Στο τέλος του σεμιναρίου, έχετε δημιουργήσει ένα cronjob για την αυτόματη ανανέωση του πιστοποιητικού.

apache debian ας κρυπτογραφήσουμε το certbot ssl

Αυτή η ανάρτηση αποτελεί μέρος του προγράμματος εγκατάστασης του LAMP Stack στο Debian 9 series.

Άλλες θέσεις αυτής της σειράς:

• Πώς να εγκαταστήσετε το Apache στο Debian 9 • Πώς να εγκαταστήσετε PHP στο Debian 9 • Πώς να ρυθμίσετε τους εικονικούς κεντρικούς υπολογιστές Apache στο Debian 9 • Πώς να εγκαταστήσετε το MariaDB στο Debian 9 • Ασφαλής Apache με την κρυπτογράφηση Let's on Debian 9