Kif Tiżgura Nginx b'Les Encrypt fuq Ubuntu u Debian


Wara t-tutorja preċedenti Let's Encrypt dwar Apache SSL, f'dan l-artikolu ser niddiskutu kif niġġeneraw u ninstallaw ċertifikat SSL/TLS b'xejn maħruġ minn Let's Encrypt CA għal webserver Nginx fuq Ubuntu jew Debian.

  1. Sikura Apache b'Ejja Kriptaġġ Ħieles fuq Ubuntu u Debian
  2. Installa Let's Encrypt SSL biex tassigura Apache fuq RHEL u CentOS

  1. Dominju reġistrat b'rekords DNS validi A biex jindikaw lura lejn l-indirizz IP tas-server tiegħek.
  2. Server tal-web Nginx installat b'SSL u Vhost attivati, f'każ li qed tippjana li tospita oqsma jew sottodominji multipli.

Pass 1: Installazzjoni ta 'Nginx Web Server

1. Fuq l-ewwel pass installa Nginx web server, jekk mhux installat diġà, billi toħroġ il-kmand hawn taħt:

$ sudo apt-get install nginx

Pass 2: Iġġenera Ċertifikat SSL Ejja Encrypt għal Nginx

2. Qabel ma tiġġenera ċertifikat SSL/TLS b'xejn, installa softwer Let's Encrypt fil-ġerarkija tas-sistema tal-fajls /usr/local/ bl-għajnuna tal-klijent git billi toħroġ il-kmandi hawn taħt:

$ sudo apt-get -y install git
$ cd /usr/local/
$ sudo git clone https://github.com/letsencrypt/letsencrypt

3. Għalkemm il-proċedura biex tikseb Ċertifikat għal Nginx hija awtomatizzata, xorta tista 'manwalment toħloq u tinstalla ċertifikat SSL b'xejn għal Nginx billi tuża l-plugin Let's Encrypt Standalone.

Dan il-metodu jeħtieġ li l-port 80 ma jridx jintuża fis-sistema tiegħek għal perjodu qasir ta 'żmien filwaqt li l-klijent Let's Encrypt jivvalida l-identità tas-server qabel ma jiġġenera ċ-ċertifikat.

Fil-każ li diġà qed tħaddem Nginx, waqqaf is-servizz billi toħroġ il-kmand li ġej.

$ sudo service nginx stop
OR
$ sudo systemctl stop nginx

Fil-każ li qed tħaddem servizz ieħor li jorbot mal-port 80 waqqaf dak is-servizz ukoll.

4. Ikkonferma li l-port 80 huwa ħieles billi tħaddem il-kmand netstat:

$ sudo netstat -tlpn | grep 80

5. Issa wasal iż-żmien li tħaddem letsencrypt sabiex tikseb Ċertifikat SSL. Mur fid-direttorju tal-installazzjoni Let's Encrypt misjub fil-mogħdija tas-sistema /usr/local/letsencrypt u mexxi l-kmand letsencrypt-auto billi tipprovdi l-għażla --standalone certonly u l-marka -d għal kull dominju jew sottodominju li tixtieq tiġġenera ċertifikat.

$ cd /usr/local/letsencrypt
$ sudo ./letsencrypt-auto certonly --standalone -d your_domain.tld 

6. Daħħal l-indirizz tal-email li se jintuża minn Let's Encrypt għall-irkupru taċ-ċavetta mitlufa jew avviżi urġenti.

7. Aqbel mat-termini tal-liċenzja billi tagħfas Enter key.

8. Fl-aħħarnett, jekk kollox mar suċċess, messaġġ simili għall-screenshot hawn taħt għandu jidher fuq il-console tat-terminal tiegħek.

Pass 3: Installa Let's Encrypt SSL Certificate f'Nginx

9. Issa li ċ-Ċertifikat SSL tiegħek ġie ġġenerat huwa żmien li tikkonfigura l-webserver Nginx biex tużah. Iċ-ċertifikati SSL ġodda jitqiegħdu f'/etc/letsencrypt/live/ taħt direttorju msemmi wara l-isem tad-dominju tiegħek. Mexxi l-kmand ls biex telenka l-fajls taċ-Ċertifikat maħruġa għad-dominju tiegħek.

$ sudo ls /etc/letsencrypt/live/
$ sudo ls -al /etc/letsencrypt/live/caeszar.tk

10. Sussegwentement, iftaħ il-fajl /etc/nginx/sites-available/default b'editur tat-test u żid il-blokk li ġej wara l-ewwel linja kkummentata li tispeċifika l-bidu tal-blokk SSL. Uża l-screenshot hawn taħt bħala gwida.

$ sudo nano /etc/nginx/sites-enabled/default

Silta blokk Nginx:

# SSL configuration
        #
        listen 443 ssl default_server;
        ssl_certificate /etc/letsencrypt/live/caeszar.tk/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/caeszar.tk/privkey.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
        ssl_dhparam /etc/nginx/ssl/dhparams.pem;

Ibdel il-valuri tal-isem tad-dominju għaċ-ċertifikati SSL kif xieraq.

11. Fuq il-pass li jmiss iġġenera ċifra Diffie-Hellman qawwija fid-direttorju /etc/nginx/ssl/ sabiex tipproteġi s-server tiegħek kontra l-attakk Logjam billi tmexxi l-kmandi li ġejjin.

$ sudo mkdir /etc/nginx/ssl
$ cd /etc/nginx/ssl
$ sudo openssl dhparam -out dhparams.pem 2048

12. Fl-aħħarnett, ibda mill-ġdid Nginx daemon biex jirrifletti l-bidliet.

$ sudo systemctl restart nginx

u ttestja ċ-ċertifikat SSL tiegħek billi żżur il-URL hawn taħt.

https://www.ssllabs.com/ssltest/analyze.html

Pass 4: Ġedded Awtomatiku Ejja Kriptaġġ Ċertifikati Nginx

13. Iċ-ċertifikati maħruġa minn Let's Encrypt CA huma validi għal 90 jum. Sabiex iġġedded awtomatikament il-fajls qabel id-data tal-iskadenza oħloq skript bash ssl-renew.sh fid-direttorju /usr/local/bin/ bil-kontenut li ġej.

$ sudo nano /usr/local/bin/ssl-renew.sh

Żid il-kontenut li ġej fil-fajl ssl-renew.sh.

#!/bin/bash

cd /usr/local/letsencrypt
sudo ./letsencrypt-auto certonly -a webroot --agree-tos --renew-by-default --webroot-path=/var/www/html/ -d your_domain.tld
sudo systemctl reload nginx
exit 0

Ibdel il-varjabbli --webroot-path biex taqbel l-għerq tad-dokument Nginx tiegħek. Kun żgur li l-iskript huwa eżekutibbli billi toħroġ il-kmand li ġej.

$ sudo chmod +x /usr/local/bin/ssl-renew.sh

14. Fl-aħħarnett żid xogħol cron biex tħaddem l-iskritt kull xahrejn f'nofs il-lejl sabiex tiżgura li ċ-ċertifikat tiegħek jiġi aġġornat f'madwar 30 jum qabel ma jiskadi.

$ sudo crontab -e

Żid il-linja li ġejja fil-qiegħ tal-fajl.

0 1 1 */2 * /usr/local/bin/ssl-renew.sh >> /var/log/your_domain.tld-renew.log 2>&1

Dak hu! Is-server Nginx tiegħek issa qed iservi kontenut SSL billi juża ċertifikat SSL Let's Encrypt b'xejn.