Hvernig á að tryggja Nginx með Lets Encrypt á Ubuntu og Debian


Eftir fyrri Let's Encrypt leiðbeiningar varðandi Apache SSL, í þessari grein munum við ræða hvernig á að búa til og setja upp ókeypis SSL/TLS vottorð gefið út af Let's Encrypt CA fyrir Nginx vefþjón á Ubuntu eða Debian.

  1. Öryggið Apache með ókeypis Let's Encrypt á Ubuntu og Debian
  2. Settu upp Let's Encrypt SSL til að tryggja Apache á RHEL og CentOS

  1. Skráð lén með gildar DNS A skrár til að vísa aftur á IP tölu netþjónsins þíns.
  2. Uppsettur Nginx vefþjónn með virkt SSL og Vhost, ef þú ætlar að hýsa mörg lén eða undirlén.

Skref 1: Uppsetning Nginx vefþjóns

1. Í fyrsta skrefi skaltu setja upp Nginx vefþjón, ef hann er ekki þegar uppsettur, með því að gefa út skipunina hér að neðan:

$ sudo apt-get install nginx

Skref 2: Búðu til Let's Encrypt SSL vottorð fyrir Nginx

2. Áður en þú býrð til ókeypis SSL/TLS vottorð skaltu setja upp Let's Encrypt hugbúnað í /usr/local/ stigveldi skráakerfisins með hjálp git biðlara með því að gefa út skipanirnar hér að neðan:

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

3. Þó að aðferðin við að fá vottorð fyrir Nginx sé sjálfvirk, geturðu samt búið til og sett upp ókeypis SSL vottorð fyrir Nginx handvirkt með Let's Encrypt Standalone tappi.

Þessi aðferð krefst þess að höfn 80 má ekki vera í notkun á kerfinu þínu í stuttan tíma á meðan Let's Encrypt viðskiptavinur staðfestir auðkenni þjónsins áður en vottorðið er búið til.

Ef þú ert að keyra Nginx nú þegar skaltu stöðva þjónustuna með því að gefa út eftirfarandi skipun.

$ sudo service nginx stop
OR
$ sudo systemctl stop nginx

Ef þú ert að keyra aðra þjónustu sem tengist höfn 80 skaltu hætta þeirri þjónustu líka.

4. Staðfestu að höfn 80 sé laus með því að keyra netstat skipunina:

$ sudo netstat -tlpn | grep 80

5. Nú er kominn tími til að keyra letsencrypt til að fá SSL vottorð. Farðu í Let's Encrypt uppsetningarskrá sem er að finna í /usr/local/letsencrypt kerfisslóð og keyrðu letsencrypt-auto skipunina með því að gefa upp --standalone valmöguleikann og -d fána fyrir hvert lén eða undirlén sem þú vilt búa til vottorð.

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

6. Sláðu inn netfangið sem Let's Encrypt mun nota til að endurheimta lykla eða brýnar tilkynningar.

7. Samþykktu skilmála leyfisins með því að ýta á Enter takkann.

8. Að lokum, ef allt gekk vel, ættu skilaboð svipað og skjámyndin hér að neðan að birtast á vélinni þinni.

Skref 3: Settu upp Let's Encrypt SSL Certificate í Nginx

9. Nú þegar SSL vottorðið þitt hefur verið búið til er kominn tími til að stilla Nginx vefþjóninn til að nota hann. Nýju SSL vottorðin eru sett í /etc/letsencrypt/live/ undir möppu sem heitir eftir léninu þínu. Keyrðu ls skipunina til að skrá skírteinisskrárnar sem gefnar eru út fyrir lénið þitt.

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

10. Næst skaltu opna /etc/nginx/sites-available/default skrána með textaritli og bæta við eftirfarandi blokk eftir fyrstu athugasemdarlínunni sem tilgreinir upphaf SSL blokkarinnar. Notaðu skjámyndina hér að neðan sem leiðbeiningar.

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

Nginx blokk útdráttur:

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

Skiptu um lénsgildi fyrir SSL vottorð í samræmi við það.

11. Í næsta skrefi skaltu búa til sterkan Diffie-Hellman dulmál í /etc/nginx/ssl/ skránni til að vernda netþjóninn þinn gegn Logjam árásinni með því að keyra eftirfarandi skipanir.

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

12. Að lokum skaltu endurræsa Nginx púkinn til að endurspegla breytingar.

$ sudo systemctl restart nginx

og prófaðu SSL vottorðið þitt með því að fara á slóðina hér að neðan.

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

Skref 4: Sjálfvirk endurnýjun Við skulum dulkóða Nginx vottorð

13. Vottorð útgefin af Let's Encrypt CA gilda í 90 daga. Til þess að endurnýja skrárnar sjálfkrafa fyrir lokadagsetningu skaltu búa til ssl-renew.sh bash forskrift í /usr/local/bin/ möppu með eftirfarandi innihaldi.

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

Bættu eftirfarandi efni við ssl-renew.sh skrána.

#!/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

Skiptu um --webroot-path breytuna til að passa við Nginx skjalrótina þína. Gakktu úr skugga um að handritið sé keyranlegt með því að gefa út eftirfarandi skipun.

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

14. Bættu að lokum við cron vinnu til að keyra handritið á tveggja mánaða fresti á miðnætti til að tryggja að skírteinið þitt verði uppfært eftir um það bil 30 dögum áður en það rennur út.

$ sudo crontab -e

Bættu við eftirfarandi línu neðst í skránni.

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

Það er það! Nginx netþjónninn þinn þjónar nú SSL efni með því að nota ókeypis Let's Encrypt SSL vottorð.