Πώς να δημιουργήσετε αυτο-υπογεγραμμένα πιστοποιητικά SSL και κλειδιά για Apache στο RHEL/CentOS 7.0


Το SSL (Secure Sockets Layer) είναι ένα κρυπτογραφικό πρωτόκολλο που επιτρέπει την ασφαλή ροή δεδομένων μεταξύ ενός διακομιστή και των πελατών του χρησιμοποιώντας συμμετρικά/ασύμμετρα κλειδιά χρησιμοποιώντας ένα ψηφιακό πιστοποιητικό υπογεγραμμένο από μια αρχή έκδοσης πιστοποιητικών (CA).

Απαιτήσεις

  1. Βασική εγκατάσταση LAMP σε RHEL/CentOS 7.0

Αυτό το σεμινάριο παρέχει μια προσέγγιση σχετικά με τον τρόπο ρύθμισης του πρωτοκόλλου κρυπτογράφησης επικοινωνίας Secure Sockets Layer (SSL) σε διακομιστή Web Apache που είναι εγκατεστημένος στο Red Hat Enterprise Linux/CentOS 7.0< και δημιουργήστε αυτουπογεγραμμένα Πιστοποιητικά και Κλειδιά με τη βοήθεια ενός σεναρίου bash που απλοποιεί σημαντικά την όλη διαδικασία.

Βήμα 1: Εγκαταστήστε και ρυθμίστε τις παραμέτρους του Apache SSL

1. Για να ενεργοποιήσετε το SSL στον διακομιστή Apache HTTP, χρησιμοποιήστε την ακόλουθη εντολή για να εγκαταστήσετε τη μονάδα SSL και το κιτ εργαλείων OpenSSL που απαιτούνται για υποστήριξη SSL/TLS.

yum install mod_ssl openssl

2. Αφού εγκατασταθεί η λειτουργική μονάδα SSL, επανεκκινήστε τον δαίμονα HTTPD και προσθέστε έναν νέο κανόνα τείχους προστασίας για να διασφαλίσετε ότι η θύρα SSL – 443 – είναι ανοιχτή σε εξωτερικές συνδέσεις στο μηχάνημά σας σε κατάσταση ακρόασης.

systemctl restart httpd
firewall-cmd --add-service=https   ## On-fly rule

firewall-cmd --permanent  --add-service=https   ## Permanent rule – needs firewalld restart

3. Για να δοκιμάσετε τη σύνδεση SSL, ανοίξτε ένα απομακρυσμένο πρόγραμμα περιήγησης και πλοηγηθείτε στη διεύθυνση IP του διακομιστή σας χρησιμοποιώντας το πρωτόκολλο HTPS στη διεύθυνση https://server_IP.

Βήμα 2: Δημιουργήστε πιστοποιητικά και κλειδιά SSL

4. Η προηγούμενη επικοινωνία SSL μεταξύ διακομιστή και πελάτη πραγματοποιήθηκε με χρήση ενός προεπιλεγμένου πιστοποιητικού και κλειδιού που δημιουργούνται αυτόματα κατά την εγκατάσταση. Για να δημιουργήσετε νέα ιδιωτικά κλειδιά και αυτο-υπογεγραμμένα ζεύγη πιστοποιητικών, δημιουργήστε το ακόλουθο σενάριο bash σε μια εκτελέσιμη διαδρομή συστήματος (` PATH).

Για αυτό το σεμινάριο επιλέχθηκε η διαδρομή /usr/local/bin/, βεβαιωθείτε ότι το σενάριο έχει εκτελέσιμο σύνολο bit και, στη συνέχεια, χρησιμοποιήστε το ως εντολή για να δημιουργήσετε νέα ζεύγη SSL στο /etc/ httpd/ssl/ ως προεπιλεγμένη τοποθεσία Πιστοποιητικά και Κλειδιά.

nano /usr/local/bin/apache_ssl

Χρησιμοποιήστε το παρακάτω περιεχόμενο αρχείου.

#!/bin/bash
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Apache SSL Certificate and Key!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The Certificate and Key for $cert has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/ssl
exit 0

5. Τώρα κάντε αυτό το σενάριο εκτελέσιμο και εκκινήστε το για να δημιουργήσετε ένα νέο ζεύγος Πιστοποιητικού και Κλειδιού για τον εικονικό κεντρικό υπολογιστή σας Apache SSL.

Συμπληρώστε το με τα στοιχεία σας και δώστε προσοχή στην τιμή Common Name για να ταιριάζει με το FQDN του διακομιστή σας ή σε περίπτωση που η Virtual Hosting ταιριάζει με τη διεύθυνση Ιστού στην οποία θα έχετε πρόσβαση όταν συνδέεστε σε έναν ασφαλή ιστότοπο.

chmod +x /usr/local/bin/apache_ssl
apache_ssl

6. Αφού δημιουργηθούν το Πιστοποιητικό και το Κλειδί, το σενάριο θα παρουσιάσει μια μεγάλη λίστα με όλα τα ζεύγη SSL του Apache που είναι αποθηκευμένα στη θέση /etc/httpd/ssl/.

7. Μια άλλη προσέγγιση για τη δημιουργία πιστοποιητικών και κλειδιών SSL είναι η εγκατάσταση του πακέτου crypto-utils στο σύστημά σας και η δημιουργία ζευγών χρησιμοποιώντας την εντολή genkey, η οποία μπορεί επιβάλλουν ορισμένα προβλήματα ειδικά όταν χρησιμοποιείται σε μια οθόνη τερματικού Putty.

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

yum install crypto-utils
genkey your_FQDN

8. Για να προσθέσετε το νέο Πιστοποιητικό και το Κλειδί στον ιστότοπό σας SSL, ανοίξτε το αρχείο διαμόρφωσης του ιστότοπού σας και αντικαταστήστε τις δηλώσεις SSLCertificateFile και SSLCertificateKeyFile με τα νέα ζεύγη τοποθεσία και ονόματα ανάλογα.

9. Εάν το Πιστοποιητικό δεν έχει εκδοθεί από αξιόπιστη αρχή έκδοσης πιστοποιητικών ή το όνομα κεντρικού υπολογιστή από το πιστοποιητικό δεν ταιριάζει με το όνομα κεντρικού υπολογιστή που δημιουργεί τη σύνδεση, θα πρέπει να εμφανιστεί ένα σφάλμα στο πρόγραμμα περιήγησής σας και πρέπει να αποδεχτείτε μη αυτόματα το πιστοποιητικό.

Αυτό είναι! Τώρα μπορείτε να χρησιμοποιήσετε το apache_sslως γραμμή εντολών στο RHEL/CentOS 7.0 για να δημιουργήσετε όσα ζεύγη αυτο-υπογεγραμμένων πιστοποιητικών και κλειδιών χρειάζεστε και όλα θα διατηρηθούν στο /etc/httpd/ ssl/ διαδρομή με το αρχείο Key που προστατεύεται με δικαιώματα 700.