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.