Asenna Let's Encrypt SSL-sertifikaatti Nginxille RHEL 9/8


Tässä artikkelissa opastamme sinua luomaan ja asentamaan SSL/TLS-varmenteen, joka on hankittu ilmaiseksi Let's Encrypt Certificate Authorityltä ja jota käytämme suojaamaan Nginx-verkkopalvelimen HTTP-tapahtumat RHEL- ja RHEL-pohjaiset jakelut, kuten Fedora, Rocky Linux ja AlmaLinux.

Jos aiot asentaa Let's Encrypt for Apache RHEL- ja RHEL-pohjaisiin jakeluihin, seuraa alla olevaa ohjetta:

Vaatimukset

  • Rekisteröity verkkotunnuksen nimi, jossa on kelvolliset A DNS-tietueet, jotka osoittavat takaisin palvelimen julkiseen IP-osoitteeseen.
  • Nginx-verkkopalvelin asennettu SSL- ja virtuaalipalvelimet käytössä (vain useille verkkotunnuksille tai aliverkkotunnuksille).

Testausympäristömme asetukset

Vaihe 1: Asenna Nginx Web Server RHEL Systemsiin

1. Jos sinulla ei ole vielä asennettuna Nginx-daemonia, anna alla olevat komennot pääkäyttäjän oikeuksin, jotta voit asentaa Nginx-verkkopalvelimen Epelin arkistoista.


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

Huomaa: Fedora-käyttäjien ei tarvitse asentaa epel-tietovarastoa.

Vaihe 2: Asenna Let’s Encrypt (Certbot) RHEL Systemsiin

2. Nopein tapa Let's Encrypt -asiakasohjelman asentamiseen Linux-järjestelmiin on asentaa paketit certbot ja python3-certbot-nginx epel-arkistosta. .


dnf install certbot python3-certbot-nginx

3. Kun certbot-asiakasohjelma on asennettu, tarkista Let's Encrypt -ohjelmiston asennettu versio suorittamalla alla oleva komento:


certbot --version

certbot 1.30.0

Vaihe 3: Hanki ilmainen Let's Encrypt SSL -sertifikaatti Nginxille

4. Ilmaisen SSL/TLS-varmenteen hankkiminen Nginxille tehdään manuaalisesti käyttämällä Let's Encrypt Standalone -toimintoa. > laajennus.

Tämä menetelmä edellyttää, että portin 80 on oltava vapaa, kun Let's Encrypt -asiakas vahvistaa palvelimen identiteetin ja luo varmenteita.

Joten jos Nginx on jo käynnissä, pysäytä demoni seuraavalla komennolla ja suorita ss-apuohjelma varmistaaksesi, että portti 80 ei ole enää käytössä verkkopinossa.


service nginx stop
systemctl stop nginx
ss -tln

5. Nyt on aika hankkia ilmainen SSL-sertifikaatti Let's Encrypt -palvelusta suorittamalla certbot-komento komennolla --nginx alustaaksesi Let's Encrypt -suojaussertifikaatin noudon ja määrityksen Nginx-verkkotunnuksille.


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

6. Lopuksi, jos kaikki meni niin kuin pitää, bash-päätteessäsi näytetään onnitteluviesti. Viesti näkyy myös, kun varmenne vanhenee.

Vaihe 4: Asenna Let's Encrypt SSL-sertifikaatti Nginxiin

9. Nyt kun omistat ilmaisen SSL/TLS-varmenteen, on aika asentaa se Nginx-verkkopalvelimeen, jotta verkkotunnuksesi voi käyttää sitä.

Kaikki uudet SSL-sertifikaatit sijoitetaan hakemistoon /etc/letsencrypt/live/ verkkotunnuksesi nimen mukaan nimettyyn hakemistoon. Käytä ls-komentoa luetteloimaan verkkotunnuksellesi myönnetyt sertifikaattitiedostot ja tunnistamaan ne.

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

10. Jos haluat asentaa varmennetiedostot Nginxiin ja ottaa SSL:n käyttöön, avaa /etc/nginx/nginx.conf-tiedosto muokkausta varten ja lisää alla olevat lauseet viimeisen kuuntelurivin jälkeen palvelinlohko. Käytä alla olevaa kuvaa oppaana.

vi /etc/nginx/nginx.conf

Nginx SSL -lohkoote:

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

Korvaa SSL-sertifikaattien verkkotunnuksen nimi merkkijono vastaamaan omaa verkkotunnustasi.

11. Käynnistä lopuksi Nginx-palvelu uudelleen ja käy verkkotunnuksessasi HTTPS-protokollan kautta osoitteessa https://yourdomain. Sivun pitäisi latautua sujuvasti, ilman varmennevirheitä.

systemctl restart nginx
service nginx restart

12. Voit tarkistaa SSL/TLS-varmenteen ja sen suoruuden seuraavasta linkistä:

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

13. Jos saat ilmoituksen, että palvelimesi tukee heikkoa DH-avainten vaihtoa ja yleisluokituksen B, luo uusi Diffie-Hellman-salauksen /etc/nginx/ssl/-hakemistossa suojaamaan palvelintasi Logjam-hyökkäykseltä suorittamalla seuraavat komennot.

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

Tässä esimerkissä olemme käyttäneet 4096-bittistä avainta, jonka luominen vie todella kauan ja lisää ylimääräisiä kustannuksia palvelimellesi ja SSL-kättelyyn.

Jos sinulla ei ole nimenomaista tarvetta käyttää näin pitkää avainta etkä ole vainoharhainen, sinun tulee olla turvassa 2048-bittisellä avaimella.

14. Kun DH-avain on luotu, avaa Nginx-määritystiedosto ja lisää alla olevat lauseet ssl_ciphers-rivin jälkeen, jotta voit lisätä DH-avaimen ja nosta verkkotunnuksesi suojaustaso A+-luokkaan.

vi /etc/nginx/nginx.conf

Lisää seuraava lohkoote tiedostoon Nginx.conf:

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. Käynnistä Nginx-palvelu uudelleen, jotta voit ottaa muutokset käyttöön ja testata SSL-varmennetta uudelleen tyhjentämällä edellisen tulosten välimuisti yllä mainitusta linkistä.

systemctl restart nginx
service nginx restart

Vaihe 5: Automaattinen uusiminen Nginx Free Sallii salata SSL-sertifikaatit

16. Let's Encrypt CA julkaisee ilmaisia SSL/TLS-varmenteita, jotka ovat voimassa 90 päivää. Sertifikaatit voidaan uusia ja ottaa käyttöön manuaalisesti ennen niiden vanhenemista webroot-laajennuksella, verkkopalvelinta pysäyttämättä, antamalla seuraavat komennot:


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

Kun suoritat yllä olevaa komentoa, muista korvata example.com vastaamaan verkkotunnustasi.

17. Jotta varmenne uusittaisiin automaattisesti ennen sen vanhenemista, luo cron-työ olemassa olevaan crontab-tiedostoon.


crontab -e

Lisää tiedoston alaosaan seuraava cron-työ, joka suoritetaan joka päivä puolenpäivän aikaan varmenteen vanhenemisen tarkistamiseksi ja sen uusimiseksi. Valinta --quiet käskee certbotia luomaan tulosta.


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

Siinä kaikki! Nyt Nginx-palvelin voi toimittaa suojattua verkkosisältöä ilmaisella SSL/TLS Let's Encrypt -sertifikaatilla verkkosivustossasi.