Εισαγωγή
Εισαγωγή
Εισαγωγή
Το SSL (σημαίνει Secure Sockets Layer ) και το διάδοχό του, TLS (σημαίνει Ασφάλεια επιπέδου μεταφοράς ) είναι κρυπτογραφικά πρωτόκολλα για την ασφαλή επικοινωνία μέσω του Διαδικτύου. Μπορεί να χρησιμοποιηθεί για τη δημιουργία ασφαλούς σύνδεσης με έναν ιστότοπο.
Εισαγωγή
Βεβαιωθείτε ότι το Nginx και το OpenSSL είναι εγκατεστημένα στον διακομιστή σας. Σε αυτό το άρθρο, θα δείξουμε τη διαδικασία δημιουργώντας ένα αυτο-υπογεγραμμένο πιστοποιητικό SSL.
Βήμα 1: Δημιουργήστε έναν κατάλογο για το πιστοποιητικό και το ιδιωτικό κλειδί
Θα δημιουργήσουμε έναν κατάλογο (και θα τον εισάγουμε) μέσα στο /etc/nginx (υποθέτοντας ότι ο κατάλογος είναι ο κατάλογος διαμόρφωσης του Nginx), με τον εξής τρόπο:
sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl # we'll perform our next few steps in this dir
Βήμα 2: Δημιουργήστε ιδιωτικό κλειδί και CSR
Ας ξεκινήσουμε δημιουργώντας το ιδιωτικό κλειδί του ιστότοπου. Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε κλειδί 4096-bit για μεγαλύτερη ασφάλεια. Σημειώστε ότι τα 2048-bit είναι επίσης ασφαλή, αλλά ΜΗ ΧΡΗΣΙΜΟΠΟΙΕΙΤΕ ΙΔΙΩΤΙΚΟ ΚΛΕΙΔΙ 1024-BIT!
sudo openssl genrsa -out example.com.key 4096
Τώρα, δημιουργήστε ένα αίτημα υπογραφής πιστοποιητικού (CSR) για την υπογραφή του πιστοποιητικού. Θα χρησιμοποιήσουμε 512-bit SHA-2. Σημειώστε την -sha512επιλογή.
sudo openssl req -new -key example.com.key -out example.com.csr -sha512
Θα σας ζητήσει μια λίστα με πεδία που πρέπει να συμπληρωθούν. Βεβαιωθείτε ότι Common Nameέχει οριστεί στο όνομα τομέα σας! Επίσης, αφήστε A challenge passwordκαι An optional company nameκενό.
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:CA
Locality Name (eg, city) []:LosAngeles
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example Inc
Organizational Unit Name (eg, section) []:Security
Common Name (e.g. server FQDN or YOUR name) []:*.example.com
Email Address []:webmaster@example.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Βήμα 3: Υπογράψτε το πιστοποιητικό σας
Σχεδόν τελείωσα! Τώρα δεν έχουμε παρά να το υπογράψουμε. Μην ξεχάσετε να αντικαταστήσετε το 365 (λήγει μετά από 365 ημέρες) στον αριθμό των ημερών που θα προτιμούσατε.
sudo openssl x509 -req -days 365 -in example.com.csr -signkey example.com.key -out example.com.crt -sha512
Τώρα, τελειώσαμε τη δημιουργία ενός αυτουπογεγραμμένου πιστοποιητικού.
Βήμα 4: Ρύθμιση
Ανοίξτε το παράδειγμα αρχείου διαμόρφωσης SSL του Nginx:
sudo nano /etc/nginx/conf.d/example_ssl.conf
Καταργήστε το σχόλιο στην ενότητα κάτω από τη γραμμή Διακομιστής HTTPS . Αντιστοιχίστε τις παραμέτρους σας με τις παρακάτω πληροφορίες, αντικαθιστώντας το example.comστη server_nameγραμμή με το όνομα τομέα ή τη διεύθυνση IP σας. Ρυθμίστε επίσης τον ριζικό σας κατάλογο.
# HTTPS server
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ecdh_curve secp384r1;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4; # no RC4 and known insecure cipher
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
Στη συνέχεια, επανεκκινήστε το Nginx.
service nginx restart
Τώρα, επισκεφτείτε τον ιστότοπό σας με μια httpsδιεύθυνση ( https://your.address.tld). Το πρόγραμμα περιήγησής σας θα εμφανίσει μια ασφαλή σύνδεση χρησιμοποιώντας το αυτο-υπογεγραμμένο πιστοποιητικό σας.