Απαιτήσεις
Πριν ξεκινήσεις
Εγκαταστήστε το πρόγραμμα-πελάτη acme.sh και αποκτήστε πιστοποιητικό TLS από το Let's Encrypt
Εγκαταστήστε το Nginx
Διαμόρφωση Nginx
Το TLS 1.3 είναι μια έκδοση του πρωτοκόλλου Transport Layer Security (TLS) που δημοσιεύτηκε το 2018 ως προτεινόμενο πρότυπο στο RFC 8446 . Προσφέρει βελτιώσεις ασφάλειας και απόδοσης σε σχέση με τους προκατόχους του.
Αυτός ο οδηγός θα δείξει πώς να ενεργοποιήσετε το TLS 1.3 χρησιμοποιώντας τον διακομιστή web Nginx στο FreeBSD 12.
Απαιτήσεις
- Περίπτωση Vultr Cloud Compute (VC2) που εκτελεί το FreeBSD 12.
- Ένα έγκυρο όνομα τομέα και σωστά διαμορφωμένες
A
/ AAAA
/ CNAME
εγγραφές DNS για τον τομέα σας.
- Ένα έγκυρο πιστοποιητικό TLS. Θα λάβουμε ένα από το Let's Encrypt.
- Έκδοση Nginx
1.13.0
ή μεγαλύτερη.
- Έκδοση 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
Εγκαταστήστε το Nginx
Το Nginx πρόσθεσε υποστήριξη για το TLS 1.3 στην έκδοση 1.13.0. Το σύστημα FreeBSD 12 συνοδεύεται από Nginx και OpenSSL που υποστηρίζουν εξαρχής το TLS 1.3, επομένως δεν χρειάζεται να δημιουργήσετε μια προσαρμοσμένη έκδοση.
Κατεβάστε και εγκαταστήστε την πιο πρόσφατη κύρια έκδοση του Nginx μέσω του pkg
διαχειριστή πακέτων.
sudo pkg install -y nginx-devel
Ελέγξτε την έκδοση.
nginx -v
# nginx version: nginx/1.15.8
Ελέγξτε την έκδοση OpenSSL έναντι της οποίας έγινε μεταγλώττιση του Nginx.
nginx -V
# built with OpenSSL 1.1.1a-freebsd 20 Nov 2018
Ξεκινήστε και ενεργοποιήστε το Nginx.
sudo sysrc nginx_enable=yes
sudo service nginx start
Τώρα που εγκαταστήσαμε με επιτυχία το Nginx, είμαστε έτοιμοι να το διαμορφώσουμε με τις κατάλληλες ρυθμίσεις για να αρχίσουμε να χρησιμοποιούμε το TLS 1.3 στον διακομιστή μας.
Εκτελέστε την sudo vim /usr/local/etc/nginx/example.com.conf
εντολή και συμπληρώστε το αρχείο με την ακόλουθη διαμόρφωση.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
}
Αποθηκεύστε το αρχείο και βγείτε με :+ W+ Q.
Τώρα πρέπει να συμπεριλάβουμε example.com.conf
στο κύριο nginx.conf
αρχείο.
Εκτελέστε sudo vim /usr/local/etc/nginx/nginx.conf
και προσθέστε την ακόλουθη γραμμή στο http {}
μπλοκ.
include example.com.conf;
Παρατηρήστε τη νέα TLSv1.3
παράμετρο της ssl_protocols
οδηγίας. Αυτή η παράμετρος είναι απαραίτητη μόνο για την ενεργοποίηση του TLS 1.3 στον διακομιστή Nginx.
Ελέγξτε τη διαμόρφωση.
sudo nginx -t
Επαναφόρτωση Nginx.
sudo service nginx reload
Για να επαληθεύσετε το TLS 1.3, μπορείτε να χρησιμοποιήσετε τα εργαλεία προγραμματισμού προγράμματος περιήγησης ή την υπηρεσία SSL Labs. Τα παρακάτω στιγμιότυπα οθόνης δείχνουν την καρτέλα ασφαλείας του Chrome.
Έχετε ενεργοποιήσει με επιτυχία το TLS 1.3 στο Nginx στον διακομιστή σας FreeBSD. Η τελική έκδοση του TLS 1.3 ορίστηκε τον Αύγουστο του 2018, επομένως δεν υπάρχει καλύτερη στιγμή για να ξεκινήσετε την υιοθέτηση αυτής της νέας τεχνολογίας.