Απαιτήσεις
Πριν ξεκινήσεις
Εγκαταστήστε το πρόγραμμα-πελάτη acme.sh και αποκτήστε ένα πιστοποιητικό TLS από το Let's Encrypt
Εγκαταστήστε το Apache
Διαμόρφωση του Apache για TLS 1.3
Το TLS 1.3 είναι μια έκδοση του πρωτοκόλλου Transport Layer Security (TLS) που δημοσιεύτηκε το 2018 ως προτεινόμενο πρότυπο στο RFC 8446 . Προσφέρει βελτιώσεις ασφάλειας και απόδοσης σε σχέση με τους προκατόχους του.
Αυτός ο οδηγός θα δείξει πώς να ενεργοποιήσετε το TLS 1.3 χρησιμοποιώντας τον διακομιστή ιστού Apache στο FreeBSD 12.
Απαιτήσεις
- Περίπτωση Vultr Cloud Compute (VC2) που εκτελεί το FreeBSD 12.
- Ένα έγκυρο όνομα τομέα και σωστά διαμορφωμένες
A
/ AAAA
/ CNAME
εγγραφές DNS για τον τομέα σας.
- Ένα έγκυρο πιστοποιητικό TLS. Θα λάβουμε ένα από το Let's Encrypt.
- Έκδοση Apache
2.4.36
ή μεταγενέστερη.
- Έκδοση OpenSSL
1.1.1
ή μεταγενέστερη.
Πριν ξεκινήσεις
Ελέγξτε την έκδοση του FreeBSD.
uname -ro
# FreeBSD 12.0-RELEASE
Βεβαιωθείτε ότι το σύστημά σας FreeBSD είναι ενημερωμένο.
freebsd-update fetch install
pkg update && pkg upgrade -y
Εγκαταστήστε τα απαραίτητα πακέτα εάν δεν υπάρχουν στο σύστημά σας.
pkg install -y sudo vim unzip wget bash socat git
Δημιουργήστε έναν νέο λογαριασμό χρήστη με το όνομα χρήστη που προτιμάτε (θα χρησιμοποιήσουμε johndoe
).
adduser
# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!
Εκτελέστε την visudo
εντολή και αφαιρέστε το σχόλιο της %wheel ALL=(ALL) ALL
γραμμής για να επιτρέψετε στα μέλη της wheel
ομάδας να εκτελέσουν οποιαδήποτε εντολή.
visudo
# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL
Τώρα, μεταβείτε στον νέο χρήστη που δημιουργήσατε με su
.
su - johndoe
ΣΗΜΕΙΩΣΗ: Αντικαταστήστε το johndoe
με το όνομα χρήστη σας.
Ρυθμίστε τη ζώνη ώρας.
sudo tzsetup
Εγκαταστήστε τον acme.sh
πελάτη και αποκτήστε ένα πιστοποιητικό TLS από το Let's Encrypt
Εγκαταστήστε acme.sh
.
sudo pkg install -y acme.sh
Ελέγξτε την έκδοση.
acme.sh --version
# v2.7.9
Αποκτήστε πιστοποιητικά RSA και ECDSA για τον τομέα σας.
# RSA
sudo acme.sh --issue --standalone -d example.com --ocsp-must-staple --keylength 2048
# ECC/ECDSA
sudo acme.sh --issue --standalone -d example.com --ocsp-must-staple --keylength ec-256
ΣΗΜΕΙΩΣΗ: Αντικαταστήστε τις example.com
εντολές με το όνομα τομέα σας.
Δημιουργήστε λογικούς καταλόγους για να αποθηκεύσετε τα πιστοποιητικά και τα κλειδιά σας. Θα χρησιμοποιήσουμε /etc/letsencrypt
.
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Εγκαταστήστε και αντιγράψτε πιστοποιητικά στο /etc/letsencrypt
.
# RSA
sudo acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem
# ECC/ECDSA
sudo acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem
Αφού εκτελέσετε τις παραπάνω εντολές, τα πιστοποιητικά και τα κλειδιά σας θα βρίσκονται στις ακόλουθες θέσεις:
RSA
: /etc/letsencrypt/example.com
ECC/ECDSA
: /etc/letsencrypt/example.com_ecc
Εγκαταστήστε το Apache
Ο Apache πρόσθεσε υποστήριξη για το TLS 1.3 στην έκδοση 2.4.36. Το σύστημα FreeBSD 12 συνοδεύεται από Apache και OpenSSL που υποστηρίζουν εξαρχής το TLS 1.3, επομένως δεν χρειάζεται να δημιουργήσετε μια προσαρμοσμένη έκδοση.
Πραγματοποιήστε λήψη και εγκατάσταση του πιο πρόσφατου κλάδου 2.4 του Apache μέσω του pkg
διαχειριστή πακέτων.
sudo pkg install -y apache24
Ελέγξτε την έκδοση.
httpd -v
# Server version: Apache/2.4.38 (FreeBSD)
Ξεκινήστε και ενεργοποιήστε το Apache.
sudo sysrc apache24_enable="yes"
sudo service apache24 start
Τώρα που εγκαταστήσαμε με επιτυχία το Apache, είμαστε έτοιμοι να το ρυθμίσουμε ώστε να αρχίσει να χρησιμοποιεί το TLS 1.3 στον διακομιστή μας.
ΣΗΜΕΙΩΣΗ: Στο FreeBSD, η mod_ssl
μονάδα είναι ενεργοποιημένη από προεπιλογή τόσο στο πακέτο όσο και στη θύρα
Εκτελέστε sudo vim /usr/local/etc/apache24/httpd.conf
και συμπεριλάβετε τη λειτουργική μονάδα SSL χωρίς να σχολιάζετε LoadModule ssl_module libexec/apache24/mod_ssl.so
.
#LoadModule ssl_module libexec/apache24/mod_ssl.so
Εκτελέστε sudo vim /usr/local/etc/apache24/Includes/example.com.conf
και συμπληρώστε το αρχείο με την ακόλουθη βασική ρύθμιση παραμέτρων.
Listen 443
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
# RSA
SSLCertificateFile "/etc/letsencrypt/example.com/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/example.com/private.key"
# ECC
SSLCertificateFile "/etc/letsencrypt/example.com_ecc/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/example.com_ecc/private.key"
</VirtualHost>
Αποθηκεύστε το αρχείο και βγείτε με :+ W+ Q.
Ελέγξτε τη διαμόρφωση.
sudo service apache24 configtest
Επαναφόρτωση Apache.
sudo service apache24 reload
Ανοίξτε τον ιστότοπό σας μέσω πρωτοκόλλου HTTPS στο πρόγραμμα περιήγησής σας. Για να επαληθεύσετε το TLS 1.3, μπορείτε να χρησιμοποιήσετε τα εργαλεία προγραμματισμού προγράμματος περιήγησης ή την υπηρεσία SSL Labs. Τα παρακάτω στιγμιότυπα οθόνης δείχνουν την καρτέλα ασφαλείας του Chrome με το TLS 1.3 σε δράση.
Έχετε ενεργοποιήσει με επιτυχία το TLS 1.3 στον Apache στον διακομιστή σας FreeBSD. Η τελική έκδοση του TLS 1.3 ορίστηκε τον Αύγουστο του 2018, επομένως δεν υπάρχει καλύτερη στιγμή για να ξεκινήσετε την υιοθέτηση αυτής της νέας τεχνολογίας.