Android

Ασφαλίστε την apache με την κρυπτογράφηση των centos 7

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

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

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

Anonim

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

Σε αυτό το σεμινάριο, θα καλύψουμε τα βήματα που απαιτούνται για την εγκατάσταση ενός ελεύθερου Let's Encrypt SSL certificate σε έναν κεντρικό υπολογιστή 7 που τρέχει Apache ως διακομιστής web. Θα χρησιμοποιήσουμε το βοηθητικό πρόγραμμα certbot για να αποκτήσουμε και να ανανεώσουμε τα Πιστοποιητικά για να κρυπτογραφήσουμε.

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

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

  • Έχετε ένα όνομα τομέα που δείχνει στον δημόσιο διακομιστή IP σας. Θα χρησιμοποιήσουμε το example.com Apache εγκαθίσταται και εκτελείται στον server.Have εικονικός κεντρικός υπολογιστής Apache για τον domain.Ports 80 και 443 είναι ανοικτά στο τείχος προστασίας.

Εγκαταστήστε τα ακόλουθα πακέτα που απαιτούνται για έναν κρυπτογραφημένο διακομιστή ιστού SSL:

yum install mod_ssl openssl

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

Το Certbot είναι ένα εργαλείο που απλοποιεί τη διαδικασία για την απόκτηση πιστοποιητικών SSL από το Let's Encrypt και την αυτόματη ενεργοποίηση του HTTPS στο διακομιστή σας.

Η συσκευασία certbot είναι εφικτή για εγκατάσταση από την EPEL. Εάν ο χώρος αποθήκευσης EPEL δεν είναι εγκατεστημένος στο σύστημά σας, μπορείτε να τον εγκαταστήσετε χρησιμοποιώντας την ακόλουθη εντολή:

sudo yum install epel-release

Μόλις ενεργοποιηθεί ο χώρος αποθήκευσης EPEL, εγκαταστήστε τη συσκευασία certbot πληκτρολογώντας:

sudo yum 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 apache /var/lib/letsencrypt sudo chmod g+s /var/lib/letsencrypt

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

/etc/httpd/conf.d/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/httpd/conf.d/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

Το απόσπασμα παραπάνω χρησιμοποιεί τα τσιπς που συνιστώνται από το Cipherli.st, επιτρέπει την OCSP Συρραφή, το HTTP Strict Transport Security (HSTS) και επιβάλλει ελάχιστες επικεφαλίδες HTTP με εστίαση στην ασφάλεια.

Επαναφόρτωση της διαμόρφωσης Apache για να εφαρμοστούν οι αλλαγές:

sudo systemctl reload

Τώρα, μπορούμε να εκτελέσουμε το εργαλείο 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-12-07. 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:

Το CentOS 7 συνοδεύεται από Apache έκδοση 2.4.6, η οποία δεν περιλαμβάνει την οδηγία SSLOpenSSLConfCmd . Αυτή η οδηγία είναι διαθέσιμη μόνο στο Apache 2.4.8 αργότερα και χρησιμοποιείται για τη διαμόρφωση των παραμέτρων του OpenSSL όπως η ανταλλαγή πλήκτρων Diffie-Hellman (DH).

Θα χρειαστεί να δημιουργήσουμε ένα νέο συνδυασμένο αρχείο χρησιμοποιώντας το πιστοποιητικό SSL του Let's Encrypt και το παραγόμενο αρχείο DH. Για να το κάνετε αυτό, πληκτρολογήστε:

cat /etc/letsencrypt/live/example.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/example.com/cert.dh.pem

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

/etc/httpd/conf.d/example.com.conf

ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration

Με τη παραπάνω διαμόρφωση, αναγκάζουμε το HTTPS και ανακατευθύνουμε από το www σε μη-www έκδοση. Χωρίς να ρυθμίσετε τη διαμόρφωση ανάλογα με τις ανάγκες σας.

Επανεκκινήστε την υπηρεσία Apache για να εφαρμοστούν οι αλλαγές:

sudo systemctl restart

Τώρα μπορείτε να ανοίξετε τον ιστότοπό σας χρησιμοποιώντας το https:// και θα δείτε ένα πράσινο εικονίδιο κλειδώματος.

Αυτόματη ανανέωση Ας κρυπτογραφήσουμε το πιστοποιητικό SSL

Τα πιστοποιητικά της Κρυπτογράφησης ισχύουν για 90 ημέρες. Για να ανανεώσετε αυτόματα τα πιστοποιητικά προτού λήξουν, θα δημιουργήσουμε ένα cronjob που θα εκτελείται δύο φορές την ημέρα και θα ανανεώνει αυτόματα κάθε πιστοποιητικό 30 ημέρες πριν από τη λήξη του.

Εκτελέστε την εντολή crontab για να δημιουργήσετε ένα νέο cronjob το οποίο θα ανανεώσει το πιστοποιητικό, θα δημιουργήσει ένα νέο συνδυασμένο αρχείο που θα περιλαμβάνει το κλειδί DH και θα επανεκκινήσει την apache:

sudo crontab -e

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

Αποθηκεύστε και κλείστε το αρχείο.

Για να ελέγξετε τη διαδικασία ανανέωσης, μπορείτε να χρησιμοποιήσετε την εντολή certbot ακολουθούμενη από το διακόπτη --dry --dry-run :

sudo certbot renew --dry-run

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

συμπέρασμα

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

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

Αυτή η ανάρτηση αποτελεί μέρος της εγκατάστασης του Stack LAMP σε σειρά CentOS 7.

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

• Πώς να εγκαταστήσετε το Apache στο CentOS 7 • Εγκαταστήστε MySQL στο CentOS 7 • Πώς να ρυθμίσετε τους Apache Virtual Hosts στο CentOS 7 • Ασφαλής Apache με την Κρυπτογράφηση Let's στο CentOS 7