SSL (tähistab turvalist sokli kihti) on veebiprotokoll, mis muudab serveri ja kliendi vahelise liikluse selle krüpteerimisega turvaliseks. Server ja kliendid edastavad liiklust turvaliselt, ilma et kolmandad osapooled tõlgendaksid. Samuti aitab see kliendil kontrollida veebisaidi identiteeti, millega ta suhtleb.
Selles postituses kirjeldame, kuidas SSL-i Nginxi jaoks seadistada. Demonstreerime protseduuri, kasutades ise allkirjastatud sertifikaati. Ise allkirjastatud sertifikaat ainult krüpteerib ühenduse, kuid ei kinnita teie serveri identiteeti. Seetõttu tuleks seda kasutada ainult keskkondade testimiseks või sisemiste LAN-teenuste jaoks. Tootmiskeskkonna jaoks on parem kasutada CA (sertifikaadi väljaandja) allkirjastatud sertifikaate.
Eeldused
Selle postituse jaoks peaksid teil olema järgmised eeldused:
- Nginx on teie arvutisse juba installitud
- Teie domeeni jaoks konfigureeritud serveriplokk
- Sudoõigustega kasutaja
Siin on selgitatud protseduuri Debian 10 (Buster) masin.
1. samm: ise allkirjastatud sertifikaadi genereerimine
Meie esimene samm on ise allkirjastatud sertifikaadi genereerimine. CSR (Certificate Signing Request) ja võtme loomiseks väljastage terminalis järgmine käsk:
$ sudo openssl req -x509 -sõlmed -päevad 365 -newkey rsa: 2048 -keyout / etc / ssl / private / selfsigned-nginx.võti -out / etc / ssl / certs / selfsigned-nginx.krtTeil palutakse esitada mõni teave, näiteks riigi nimi, osariik, asukoht, üldnimi (teie domeeninimi või IP-aadress) ja e-posti aadress.
Ülalolevas käsus loob OpenSSL kaks järgmist faili:
- CSR: ise allkirjastatud-nginx.krt aastal / etc / ssl / cert / kataloog
- Võti: ise allkirjastatud-nginx.võti aastal kataloog / / etc / ssl / private
Nüüd looge dhparam.pem-fail kasutades järgmist käsku:
$ sudo avab dhparam -out / etc / ssl / certs / dhparam.pem 20482. samm: Nginxi konfigureerimine SSL-i kasutamiseks
Eelmises etapis oleme loonud CSR-i ja võtme. Selles etapis konfigureerime Nginxi SSL-i kasutamiseks. Selleks loome konfiguratsioonijupi ja lisame teavet meie SSL-sertifikaadi failide ja võtmete asukohtade kohta.
Uue konfiguratsioonijupi loomiseks väljastage terminalis järgmine käsk ise allkirjastatud.konf fail aastal / etc / nginx / katkendid.
$ sudo nano / etc / nginx / snippets / ise allkirjastatud.konfLisage faili järgmised read:
ssl_certificate / etc / ssl / certs / selfsigned-nginx.crt;ssl_certificate_key / etc / ssl / private / selfsigned-nginx.võti;
The ssl_sertifikaat on seatud väärtusele ise allkirjastatud-nginx.krt (sertifikaadifail) ssl_certificate_key on seatud väärtusele ise allkirjastatud-nginx.võti (võtmefail).
Salvestage ja sulgege ise allkirjastatud.konf faili.
Nüüd loome veel ühe koodifaili ssl-params.konf ja konfigureerige mõned SSL-i põhiseaded. Välja andmiseks terminalis väljastage järgmine käsk ssl-params.konf fail:
$ sudo nano / etc / nginx / snippets / ssl-params.konfLisage faili järgmine sisu:
ssl_protocols TLSv1.2;ssl_prefer_server_ciphers sisse;
ssl_dhparam / etc / ssl / certs / dhparam.pem;
ssl_cifhers ECDHE-RSA-AES256-GCM-SHA512: DHE-RSA-AES256-GCM-SHA512: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES256-GCM-SHA384: ECDA4E
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache jagatud: SSL: 10m;
ssl_session_tickets off;
# ssl_stapling on;
# ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 kehtivat = 300s;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode = block";
Kuna me ei kasuta CA-ga allkirjastatud sertifikaati, oleme SSL-i klammerdamise keelanud. Kui kasutate CA-ga allkirjastatud sertifikaati, tühjendage ssl_stapling sissekanne.
3. samm: Nginxi konfigureerimine SSL-i kasutamiseks
Nüüd avame mõne konfiguratsiooni tegemiseks Nginxi serveriploki konfiguratsioonifaili. Selles etapis eeldame, et olete juba seadistanud serveriploki, mis sarnaneb järgmisega:
serverkuulata 80;
kuulama [::]: 80;
juur / var / www / test.org / html;
indeksindeks.HTML-i register.htm indeks.nginx-debian.HTML;
serveri_nimi test.org www.test.org;
asukoht /
proov_failid $ uri $ uri / = 404;
Nginxi serveriploki konfiguratsioonifaili avamiseks kasutage järgmist käsku:
$ sudo nano / etc / nginx / sites-available / test.orgNüüd muutke olemasolevat server blokeerige, et see näeks välja selline:
serverkuulata 443 ssl;
kuulama [::]: 443 ssl;
sisaldavad juppe / ise allkirjastatud.konf;
lisada juppe / ssl-parame.konf;
juur / var / www / test.org / html;
indeksindeks.HTML-i register.htm indeks.nginx-debian.HTML;
serveri_nimi test.org www.test.org;
Ülaltoodud konfiguratsioonides oleme lisanud ka SSL-i jupid ise allkirjastatud.konf ja ssl-params.konf mille oleme varem konfigureerinud.
Järgmisena lisage a teine server blokeerida.
serverkuulata 80;
kuulama [::]: 80;
serveri_nimi test.org www.test.org;
tagastage 302 https: // $ server_name $ request_uri;
Ülaltoodud konfiguratsioonis, tagastus 302 suunab HTTP ümber HTTPS-i.
Märge: Asendage test kindlasti.oma domeeninimega org. Nüüd salvestage ja sulgege fail.
4. samm: lubage SSL-liiklus tulemüüri kaudu
Kui teie süsteemis on lubatud tulemüür, peate selle kaudu lubama SSL-liikluse. Nginx pakub teile ufw-ga kolme erinevat profiili. Neid saate vaadata terminali alloleva käsu abil:
$ sudo ufw rakenduste loendNäete järgmist Nginxi liikluse kolme profiiliga väljundit.
Tulemüüris peate lubama profiili „Nginx Full”. Selleks kasutage järgmist käsku:
$ sudo ufw lubab 'Nginx Full'Selleks, et kontrollida, kas profiil on tulemüüris lubatud, kasutage järgmist käsku:
$ sudo ufw olek5. samm: testige NGINX-i konfiguratsioonifaili
Nüüd testige Nginxi konfiguratsioonifaili, kasutades terminalis järgmist käsku:
$ sudo nginx -tPeaksite nägema allpool olevat väljundit.
Looge nüüd sümboolne link saitide ja saitide vahel:
Seejärel taaskäivitage teenus Nginx konfiguratsioonimuudatuste rakendamiseks. Selleks kasutage järgmist käsku:
$ sudo systemctl taaskäivitage nginx6. samm: testige SSL-i
SSL-i testimiseks navigeerige järgmisele aadressile:
https: // domeen või IP-aadress
Kuna oleme ise allkirjastatud sertifikaadi seadistanud, näeme seetõttu hoiatust, et ühendus pole turvaline. Järgmine leht kuvatakse brauseri Mozilla Firefox kasutamisel.
Klõpsake nuppu Täpsem nuppu.
Klõpsake nuppu Lisa erand.
Seejärel klõpsake nuppu Kinnitage turvaerand.
Nüüd näete oma HTTPS-i saiti, kuid hoiatusmärgiga (lukustage kollase hoiatusmärgiga) oma veebisaidi turvalisuse kohta.
Samuti kontrollige oma domeeni või IP-aadressi abil, kasutades http-i, kas ümbersuunamine töötab õigesti.
http: // domeeni või IP-aadress
Kui teie sait suunab automaatselt HTTPS-i, tähendab see, et ümbersuunamine toimis õigesti. Ümbersuunamise püsivaks konfigureerimiseks muutke serveriploki konfiguratsioonifaili, kasutades terminali allolevat käsku:
$ sudo nano / etc / nginx / sites-available / test.orgNüüd muutke tagastust 302 tagastama 301 failis ning seejärel salvestage ja sulgege.
Nii saate Debian 10 süsteemis Nginxi jaoks SSL-i seadistada. Oleme demonstreerimiseks seadnud ise allkirjastatud sertifikaadi. Kui olete tootmiskeskkonnas, hankige alati CA sertifikaat.