Kuinka ottaa SSL käyttöön NGINX: ssä

Kuva: Jack Wallen

Secure Sockets Layer (SSL) on tullut välttämättömyys web-palvelimille. Miksi? Koska turvallisuus on pakotettu huomion keskipisteeseen, ja jokainen yritys kohtaa nyt tosiasian, että niiden web-palvelimien on palveltava sisältöä turvallisesti.

Tietokeskuksen lukemat

  • 8 tietokeskuksen ennustetta vuodelle 2020
  • 7 verkkonäköennustetta vuodelle 2020: automaatio, reunalaskenta, Wi-Fi 6 ja enemmän
  • Palvelimen virtualisoinnin parhaat käytännöt ja vinkit siihen, mitä ei tehdä
  • Kvanttilaskenta: Seitsemän totuutta, jotka sinun on tiedettävä

Tätä varten sinun on käytettävä SSL: tä. Jos satut työskentelemään NGINX: n kanssa, olet onnekas, koska prosessi on täysin mahdollinen (vaikkakin hieman monimutkainen).

Haluan käydä läpi vaiheet, jotka koskevat SSL: n käyttöönottoa Ubuntu Server 18.04 -käyttöjärjestelmässä, ajaen NGINX. Esitän tämän itse allekirjoitetulla sertifikaatilla, mutta virallisen varmentajan (CA) sertifikaatti on paljon parempi valinta. Itse asiassa sinun tulee käyttää itse allekirjoitettua varmennetta vain välineenä testausta varten.

Mitä tarvitset

Tämän suorittamiseksi tarvitset NGINX: n, joka toimii Ubuntu Server 18.04: ssä, ja itse allekirjoitettu varmenne on valmis. Oletan, että sinulla on jo Ubuntu ja NGINX käynnissä. Käymme läpi itse allekirjoitetun sertifikaatin luomisprosessin.

Itse allekirjoitettu todistus

Ensimmäinen vaihe on luoda itse allekirjoitettu varmenne. Kirjaudu sisään palvelimellesi ja anna seuraava komento:

 sudo openssl req -x509 -solmut-päivät 365 -uude-avain rsa: 2048 -avain /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt 

Sinulta kysytään muutama kysymys (kuten maan nimi, osavaltio, paikkakunta jne.). Tärkein vastaus on yleinen nimi. Vastaa tähän kysymykseen palvelimen IP-osoitteella ( kuva A ).

Kuvio A

Yleisen nimen määrittäminen IP-osoitteella.


Kun komento on valmis, tarvittavat tiedostot lisätään hakemistoon / etc / ssl ja ovat käyttövalmiita.

Määritä NGINX

Nyt meidän on määritettävä NGINX käyttämään SSL: tä. Luo ensin uusi kokoonpanotiedoston komento:

 sudo nano /etc/nginx/snippets/self-signed.conf 

Lisää uuteen tiedostoon seuraava sisältö:

 ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; 

Tallenna ja sulje tiedosto.

Luo seuraavaksi toinen määrityskatkelma, joka osoittaa vasta luodulle SSL-avaimelle ja varmenteelle. Anna tämä komento:

 sudo nano /etc/nginx/snippets/ssl-params.conf 

Lisää uuteen tiedostoon seuraava sisältö:

 ssl_protocols TLSv1.2; ssl_prefer_server_ciphers on; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512: DHE-RSA-AES256-GCM-SHA512: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES256-GCM-SHA384: ECDHEE4; ssl_ecdh_curve secp384r1; # Vaatii nginx> = 1.1.0 ssl_session_timeout 10m; ssl_session_cache jaettu: SSL: 10m; ssl_session_tickets pois; # Vaatii nginx> = 1.5.9 # ssl_stapling on; # Vaatii nginx> = 1.3.7 # ssl_stapling_verify on; # Vaatii nginx => 1.3.7 resolver 8.8.8.8 8.8.4.4 voimassa = 300 s; resolver_timeout 5s; add_header X-kehyksen asetukset DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode = block"; 

Koska käytämme itse allekirjoitettua varmennetta, poistamme käytöstä SSL-nidonnan (menetelmä, jolla määritetään nopeasti ja turvallisesti, onko SSL-varmenne voimassa). Jos et käytä itse allekirjoitettua varmennetta, poista # -merkit ennen kahta riviä. Voit myös muuttaa päätöslauseriviä vastaamaan ensisijaisia ​​DNS-palvelimia. Tallenna ja sulje tiedosto.

Meidän on myös luotava dhparam.pem-tiedosto komennolla:

 sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 

Yllä oleva komento vie jonkin aikaa.

Seuraava vaihe on määrittää NGINX siten, että se tietää, että käytämme SSL: ää. Oletetaan, että sinulla on palvelinlohko esim ..com sivustolla saatavissa. Avaa palvelinlohko komennolla:

 sudo nano /etc/nginx/sites-avable/example.com 

Muokkaa tiedostoa muokkaamaan sitä seuraavassa:

 palvelin {kuuntele 443 ssl; kuuntele ::: 443 ssl; sisällytä katkelmat / itse allekirjoitettu.conf; sisällytä katkelmat / ssl-params.conf; server_name esimerkki.com www.example.com; root /var/www/example.com/html; hakemisto index.html index.htm index.nginx-debian.html; } 

Tämän alapuolelle lisätään uusi palvelinlohko (HTTPS-uudelleenohjauksen suorittamiseksi) kuten:

 palvelin {kuuntele 80; kuuntele ::: 80; server_name esimerkki.com www.example.com; palauta 302 https: // $ palvelimen_nimi $ pyyntö_uri; } 

Viimeinkin meidän on linkitettävä sivustoista, jotka ovat käytettävissä sivustoihin, komennolla:

 ln -s /etc/nginx/sites-avable/www.example.com / etc / nginx / site-enabled / 

Tarkista profiilit

Ufw: n avulla voimme tarkistaa uudet SSL-yhteensopivat profiilimme komennolla:

 sudo ufw-sovellusluettelo 

Tämän pitäisi selvästi osoittaa, että NGINX HTTPS on käytössä ( kuva B ).

Kuvio B

NGINX HTTPS on valmis.


Käynnistä NGINX uudelleen komennolla:

 sudo systemctl käynnistä uudelleen nginx 

Sinun pitäisi nyt pystyä osoittamaan selaimeen kohtaan https: // SERVER_IP (missä SERVER_IP on palvelimesi IP-osoite) ja nähdä (koska käytämme itse allekirjoitettua varmennetta) varoitus varmenteen turvallisuudesta ( kuva C ).

Kuvio C

Firefox osoittaa, että sivusto ei ehkä ole turvallinen.


Onnittelut, SSL työskentelee nyt NGINX: n parissa. Tietokeskuksen Web-palvelimet ovat turvallisempia.

Datakeskuksen trendit -uutiskirje

DevOps, virtualisointi, hybridi pilvi, tallennus ja toiminnan tehokkuus ovat vain joitain tietokeskuksen aiheista, joita korostamme. Toimitetaan maanantaisin ja keskiviikkoisin

Rekisteröidy tänään

© Copyright 2020 | mobilegn.com