Weboldal keresés

Telepítse a Let’s Encrypt SSL-tanúsítványt az Nginx számára az RHEL 9/8-ra


Ebben a cikkben bemutatjuk, hogyan hozhat létre és telepíthet egy SSL/TLS-tanúsítványt, amelyet ingyenesen szerezhet be a Titkosítsuk a tanúsító hatóságtól, amelyet az Nginx webszerver HTTP-tranzakcióinak RHEL-en és RHEL-en keresztül történő biztosítására fogunk használni. RHEL-alapú disztribúciók, például Fedora, Rocky Linux és AlmaLinux.

Ha telepíteni szeretné a Let's Encrypt for Apache-t RHEL- és RHEL-alapú disztribúciókra, kövesse az alábbi útmutatót:

Követelmények

  • Regisztrált tartománynév érvényes A DNS rekordokkal, amelyek visszamutatnak a szerver nyilvános IP-címére.
  • Az Nginx webszerver az SSL és a Virtuális Hostok engedélyezésével van telepítve (csak több domain vagy aldomain tárhely esetén).

Tesztelési környezetünk beállítása

1. lépés: Telepítse az Nginx webszervert az RHEL Systemsben

1. Az első lépésben, ha még nincs telepítve az Nginx démon, adja ki az alábbi parancsokat root jogosultságokkal, hogy telepítse az Nginx webszervert az Epel tárolókból.


------------- On RHEL, Rocky & AlmaLinux 9 ------------- 
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

------------- On RHEL, Rocky & AlmaLinux 8 -------------
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

------------- Install Nginx Web Server -------------
yum install nginx

Megjegyzés: A Fedora felhasználóknak nem kell telepíteniük az epel adattárat.

2. lépés: Telepítse a Let’s Encrypt (Certbot) programot az RHEL Systems rendszerbe

2. A Let's Encrypt kliens Linux rendszereken történő telepítésének leggyorsabb módja a certbot és a python3-certbot-nginx csomagok telepítése az epel tárolóból. .


dnf install certbot python3-certbot-nginx

3. A certbot kliens telepítése után ellenőrizze a Let’s Encrypt szoftver telepített verzióját az alábbi parancs futtatásával:


certbot --version

certbot 1.30.0

3. lépés: Szerezzen be egy ingyenes Let’s Encrypt SSL-tanúsítványt az Nginx számára

4. Az Nginx ingyenes SSL/TLS-tanúsítványának megszerzésének folyamata manuálisan történik a Titkosítsuk önállóan használatával. > plugin.

Ez a módszer megköveteli, hogy a 80-as portnak szabadnak kell lennie mindaddig, amíg a Titkosítsuk kliens ellenőrzi a szerver azonosságát és tanúsítványokat állít elő.

Tehát, ha az Nginx már fut, állítsa le a démont a következő paranccsal, és futtassa az ss segédprogramot annak ellenőrzésére, hogy a 80-as port már nincs használatban a hálózati veremben.


service nginx stop
systemctl stop nginx
ss -tln

5. Most itt az ideje, hogy ingyenes SSL-tanúsítványt szerezzen a Let's Encrypt szolgáltatástól a certbot parancs futtatásával a --nginx kóddal. a Let's Encrypt biztonsági tanúsítvány lekérésének és konfigurálásának inicializálásához Nginx tartományokhoz.


certbot --nginx
Or
certbot --nginx -d example.com -d www.example.com

6. Végül, ha minden úgy ment, ahogy kell, egy gratuláló információs üzenet jelenik meg a bash terminálon. Az üzenet akkor is megjelenik, amikor a tanúsítvány lejár.

4. lépés: Telepítse a Let’s Encrypt SSL-tanúsítványt az Nginxben

9. Most, hogy ingyenes SSL/TLS-tanúsítvánnyal rendelkezik, itt az ideje telepíteni azt az Nginx webszerverre, hogy domainje használni tudja.

Az összes új SSL-tanúsítvány a /etc/letsencrypt/live/ könyvtárba kerül, a domain neve után elnevezett könyvtárba. Az ls paranccsal listázza ki a tartományhoz kiállított tanúsítványfájlokat, és azonosítsa azokat.

sudo ls /etc/letsencrypt/live/
sudo ls -al /etc/letsencrypt/live/your_domain.tld

10. A tanúsítványfájlok Nginxben való telepítéséhez és az SSL engedélyezéséhez nyissa meg az /etc/nginx/nginx.conf fájlt szerkesztésre, és adja hozzá az alábbi utasításokat az utolsó figyelési sor után szerver blokk. Használja az alábbi ábrát útmutatóként.

vi /etc/nginx/nginx.conf

Nginx SSL blokk kivonat:

SSL configuration
listen 443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/your_domain.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain.tld/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

Cserélje le az SSL-tanúsítványok domain name karakterláncát, hogy megfeleljen a saját domainjének.

11. Végül indítsa újra az Nginx szolgáltatást, és keresse fel domainjét HTTPS-protokoll segítségével a https://yourdomain címen. Az oldalnak simán, tanúsítványhiba nélkül kell betöltenie.

systemctl restart nginx
service nginx restart

12. Az SSL/TLS tanúsítvány és annak egyenessége ellenőrzéséhez látogasson el a következő linkre:

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

13. Abban az esetben, ha értesítést kap arról, hogy a szervere támogatja a gyenge DH kulcscserét és a B besorolást, hozzon létre egy új Diffie-Hellman titkosítás az /etc/nginx/ssl/ könyvtárban, hogy megvédje szerverét a Logjam támadástól a következő parancsok futtatásával.

mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
openssl dhparam -out dhparams.pem 4096

Ebben a példában egy 4096 bites kulcsot használtunk, amelynek előállítása valójában sok időt vesz igénybe, és extra többletterhelést jelent a szerveren és az SSL-kézfogáson.

Abban az esetben, ha nincs kifejezett szükség ilyen hosszú kulcs használatára, és nem kell paranoiásnak lennie, biztonságban kell lennie egy 2048 bites kulccsal.

14. A DH kulcs létrehozása után nyissa meg az Nginx konfigurációs fájlt, és adja hozzá az alábbi utasításokat az ssl_ciphers sor után a DH kulcs hozzáadásához és emelje domainje biztonsági szintjét A+ fokozatra.

vi /etc/nginx/nginx.conf

Adja hozzá a következő blokkrészletet az Nginx.conf fájlhoz:

ssl_dhparam /etc/nginx/ssl/dhparams.pem;
ssl_session_timeout 30m;
ssl_session_cache shared:SSL:10m;
ssl_buffer_size 8k;
add_header Strict-Transport-Security max-age=31536000;

15. Indítsa újra az Nginx szolgáltatást a módosítások alkalmazásához és az SSL-tanúsítvány újbóli teszteléséhez az előző eredmény gyorsítótárának törlésével a fent említett linkről.

systemctl restart nginx
service nginx restart

5. lépés: Az Nginx Free automatikus megújítása lehetővé teszi az SSL-tanúsítványok titkosítását

16. A Let’s Encrypt CA ingyenes 90 napig érvényes SSL/TLS tanúsítványokat bocsát ki. A tanúsítványok manuálisan megújíthatók és lejárat előtt alkalmazhatók a webroot beépülő modul segítségével, a webszerver leállítása nélkül, az alábbi parancsok kiadásával:


certbot --nginx -d example.com -d www.example.com
systemctl reload nginx

A fenti parancs futtatásakor ügyeljen arra, hogy cserélje ki az example.com címet, hogy megfeleljen a domainjének.

17. A tanúsítvány lejárat előtti automatikus megújításához hozza létre a cron feladatot egy meglévő crontab fájlba.


crontab -e

Adja hozzá a következő cron-feladatot a fájl aljához, amely minden nap délben lefut a tanúsítvány lejártának ellenőrzéséhez és megújításához. A --quiet opció azt mondja a certbotnak, hogy ne generáljon kimenetet.


0 12 * * * /usr/bin/certbot renew --quiet

Ez minden! Mostantól az Nginx szerver biztonságos webes tartalmat tud szállítani egy ingyenes SSL/TLS Let’s Encrypt tanúsítvánnyal a webhelyén.