Kuidas kaitsta Nginxit Lets Encryptiga Ubuntu ja Debiani kaudu


Pärast eelmist Apache SSL-i krüpteerimise õpetust käsitleme selles artiklis, kuidas genereerida ja installida Let’s Encrypt CA for Nginx veebiserveri väljastatud tasuta SSL/TLS-sertifikaat Ubuntu või Debiani.

  1. Turvaline Apache tasuta krüpteerimise abil Ubuntu ja Debiani kaudu
  2. RHEL-i ja CentOS-i installige Let’s Encrypt SSL, et kaitsta Apache'i

  1. Registreeritud domeen kehtiva DNS-iga A salvestab teie serveri IP-aadressile tagasi osutamiseks.
  2. Installitud Nginxi veebiserver, millel on lubatud SSL ja Vhost, juhul kui kavatsete majutada mitut domeeni või alamdomeeni.

1. samm: installige Nginxi veebiserver

1. Esimeses etapis installige Nginxi veebiserver, kui see pole veel installitud, väljastades järgmise käsu:

$ sudo apt-get install nginx

2. samm: genereerime Nginxi jaoks krüpteerime SSL-i sertifikaadi

2. Enne tasuta SSL/TLS-sertifikaadi genereerimist installige tarkvara Encrypt faili /usr/local/ failisüsteemi hierarhiasse git-kliendi abil, väljastades järgmised käsud:

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

3. Kuigi Nginxi jaoks sertifikaadi hankimise protseduur on automatiseeritud, saate siiski käsitsi luua ja installida Nginxile tasuta SSL-sertifikaadi, kasutades pistikprogrammi Let’s Encrypt Standalone.

See meetod nõuab, et port 80 ei tohiks teie süsteemis olla lühikese aja jooksul kasutusel, samal ajal kui Let’s Encrypt klient kontrollib enne sertifikaadi genereerimist serveri identiteeti.

Kui kasutate juba Nginxit, peatage teenus järgmise käsu väljastamisega.

$ sudo service nginx stop
OR
$ sudo systemctl stop nginx

Kui kasutate mõnda muud teenust, mis seondub 80. porti, peatage ka see teenus.

4. Veenduge, et port 80 on vaba, käivitades käsu netstat:

$ sudo netstat -tlpn | grep 80

5. Nüüd on aeg käivitada letsencrypt , et saada SSL-sertifikaat. Minge jaotisse Krüpteerime installite kataloogi, mis asub/usr/local/letsencrypt süsteemis ja käivitage käsk letencrypt-auto, pakkudes valikut certonly --standalone ja lipu -d iga domeeni või alamdomeeni kohta, mille soovite sertifikaadi genereerida.

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

6. Sisestage e-posti aadress, mida Let’s Encrypt kasutab kaotatud võtme taastamise või kiireloomuliste teadete jaoks.

7. Nõustuge litsentsi tingimustega, vajutades sisestusklahvi.

8. Lõpuks, kui kõik õnnestus, peaks teie terminali konsoolile ilmuma alltoodud ekraanipildiga sarnane teade.

3. samm: installime krüpteerime SSL-i sertifikaadi Nginxis

9. Nüüd, kui teie SSL-sertifikaat on loodud, on aeg seadistada Nginxi veebiserver seda kasutama. Uued SSL-sertifikaadid paigutatakse kausta /etc/letsencrypt/live/ teie domeeninime järgi nimetatud kataloogi. Käivitage käsk ls, et loetleda teie domeenile välja antud sertifikaadifailid.

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

10. Seejärel avage tekstiredaktoriga fail /etc/nginx/sites-available/default ja lisage järgmine kommentaar rea järele, mis määrab SSL-ploki alguse. Kasutage juhendina allolevat ekraanipilti.

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

Nginxi ploki väljavõte:

# 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;

Asendage vastavalt SSL-sertifikaatide domeeninime väärtused.

11. Järgmisel etapil genereerige kataloogis/etc/nginx/ssl/tugev tugev Diffie-Hellmani šifr, et kaitsta oma serverit Logjami rünnaku eest järgmiste käskude käivitamisega.

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

12. Lõpuks taaskäivitage Nginxi deemon, et kajastada muudatusi.

$ sudo systemctl restart nginx

ja testige oma SSL-sertifikaati, külastades allolevat URL-i.

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

4. samm: krüpteerime Nginxi sertifikaadid automaatselt

13. Let’s Encrypt CA välja antud sertifikaadid kehtivad 90 päeva. Failide automaatseks uuendamiseks enne aegumiskuupäeva looge /usr/local/bin/ kataloogis ssl-renew.sh bash skript järgmise sisuga.

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

Lisage järgmine sisu faili 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

Asendage muutuja --webroot-path teie Nginxi dokumendi juurega. Veenduge, et skript on käivitatav, väljastades järgmise käsu.

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

14. Lõpuks lisage croni töö skripti käitamiseks iga kahe kuu tagant keskööl, et tagada teie sertifikaadi värskendamine umbes 30 päeva jooksul enne selle kehtivuse lõppemist.

$ sudo crontab -e

Lisage järgmine rida faili lõppu.

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

See on kõik! Teie Nginxi server serveerib nüüd SSL-sisu, kasutades tasuta Let’s Encrypt SSL -sertifikaati.