Kuinka suojata Nginx Let's Encryptillä Ubuntussa ja Debianissa
Edellisen Apache SSL:ää koskevan Let's Encrypt -opetusohjelman jälkeen tässä artikkelissa keskustelemme ilmaisen Let's Encrypt CA:n myöntämän SSL/TLS-varmenteen luomisesta ja asentamisesta. Nginx-verkkopalvelimelle Ubuntussa tai Debianissa.
Lue myös
- Suojaa Apache Free Let's Encryptillä Ubuntussa ja Debianissa
- Asenna Let’s Encrypt SSL Secure Apachea varten RHEL- ja CentOS-järjestelmiin
Testaus näyteympäristö
Vaatimukset
- Rekisteröity verkkotunnus kelvollisilla DNS
A
-tietueilla, jotka osoittavat takaisin palvelimesi IP-osoitteeseen. - Asennettu Nginx-verkkopalvelin, jossa on käytössä SSL ja Vhost, jos aiot isännöidä useita verkkotunnuksia tai aliverkkotunnuksia.
Vaihe 1: Nginx-verkkopalvelimen asentaminen
1. Asenna Nginx-verkkopalvelin ensimmäisessä vaiheessa, jos sitä ei ole vielä asennettu, antamalla alla oleva komento:
sudo apt-get install nginx
Vaihe 2: Luo Let's Encrypt SSL -varmenne Nginxille
2. Ennen kuin luot ilmaisen SSL/TLS-varmenteen, asenna Let's Encrypt -ohjelmisto /usr/local/
-tiedostojärjestelmähierarkiaan >git-asiakasohjelma antamalla seuraavat komennot:
sudo apt-get -y install git
cd /usr/local/
sudo git clone https://github.com/letsencrypt/letsencrypt
3. Vaikka Nginx-varmenteen hankkiminen on automatisoitu, voit silti luoda ja asentaa manuaalisesti ilmaisen SSL-varmenteen Nginxille Let’s Encrypt Standalone -laajennuksella.
Tämä menetelmä edellyttää, että portti 80 ei saa olla käytössä järjestelmässäsi lyhyen aikaa, kun Let’s Encrypt -asiakas vahvistaa palvelimen identiteetin ennen varmenteen luomista.
Jos käytät jo Nginxiä, lopeta palvelu antamalla seuraava komento.
sudo service nginx stop
OR
sudo systemctl stop nginx
Jos käytät muuta palvelua, joka sitoo porttia 80, lopeta myös tämä palvelu.
4. Varmista, että portti 80 on vapaa suorittamalla netstat-komento:
sudo netstat -tlpn | grep 80
5. Nyt on aika suorittaa letsencrypt
saadaksesi SSL-varmenteen. Siirry Let's Encrypt -asennushakemistoon, joka löytyy järjestelmäpolusta /usr/local/letsencrypt ja suorita komento letsencrypt-auto antamalla certonly -d
-merkki jokaiselle verkkotunnukselle tai aliverkkotunnukselle, jolle haluat luoda varmenteen.
cd /usr/local/letsencrypt
sudo ./letsencrypt-auto certonly --standalone -d your_domain.tld
6. Anna sähköpostiosoite, jota Let's Encrypt käyttää kadonneiden avainten palauttamiseen tai kiireellisiin ilmoituksiin.
7. Hyväksy käyttöoikeuden ehdot painamalla Enter-näppäintä.
8. Lopuksi, jos kaikki onnistui, päätekonsoliisi pitäisi ilmestyä alla olevan kuvakaappauksen kaltainen viesti.
Vaihe 3: Asenna Let's Encrypt SSL-sertifikaatti Nginxiin
9. Nyt kun SSL-sertifikaattisi on luotu, on aika määrittää Nginx-verkkopalvelin käyttämään sitä. Uudet SSL-sertifikaatit sijoitetaan hakemistoon /etc/letsencrypt/live/
verkkotunnuksesi nimen mukaan nimettyyn hakemistoon. Suorita ls-komento listataksesi toimialueellesi myönnetyt sertifikaattitiedostot.
sudo ls /etc/letsencrypt/live/
sudo ls -al /etc/letsencrypt/live/caeszar.tk
10. Avaa seuraavaksi tiedosto /etc/nginx/sites-available/default
tekstieditorilla ja lisää seuraava lohko ensimmäisen kommentoidun rivin jälkeen, joka määrittää SSL-esto. Käytä alla olevaa kuvakaappausta ohjeena.
sudo nano /etc/nginx/sites-enabled/default
Nginx-lohkoote:
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;
Korvaa SSL-sertifikaattien toimialueen nimiarvot vastaavasti.
11. Luo seuraavassa vaiheessa vahva Diffie-Hellman-salaus /etc/nginx/ssl/-hakemistoon suojataksesi palvelintasi Logjam-hyökkäys suorittamalla seuraavat komennot.
sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
sudo openssl dhparam -out dhparams.pem 2048
12. Lopuksi käynnistä Nginx-daemon uudelleen muutosten huomioon ottamiseksi.
sudo systemctl restart nginx
ja testaa SSL-sertifikaattisi käymällä alla olevassa URL-osoitteessa.
https://www.ssllabs.com/ssltest/analyze.html
Vaihe 4: Automaattinen uusiminen Salataan Nginx-sertifikaatit
13. Let's Encrypt CA:n myöntämät sertifikaatit ovat voimassa 90 päivää. Jotta tiedostot uusittaisiin automaattisesti ennen vanhentumispäivää, luo ssl-renew.sh
bash-skripti /usr/local/bin/
-hakemistoon, jossa on seuraava sisältö.
sudo nano /usr/local/bin/ssl-renew.sh
Lisää seuraava sisältö ssl-renew.sh
-tiedostoon.
#!/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
Korvaa muuttuja --webroot-path
vastaamaan Nginx-asiakirjan juuria. Varmista, että komentosarja on suoritettavissa antamalla seuraava komento.
sudo chmod +x /usr/local/bin/ssl-renew.sh
14. Lisää lopuksi cron-työ suorittaaksesi skriptin kahden kuukauden välein keskiyöllä varmistaaksesi, että varmenne päivitetään noin 30 päivän kuluessa ennen sen vanhenemista.
sudo crontab -e
Lisää seuraava rivi tiedoston alaosaan.
0 1 1 */2 * /usr/local/bin/ssl-renew.sh >> /var/log/your_domain.tld-renew.log 2>&1
Se siitä! Nginx-palvelimesi palvelee nyt SSL-sisältöä ilmaisella Let's Encrypt SSL -sertifikaatilla.