SSL (apzīmē drošu ligzdu slāni) ir tīmekļa protokols, kas trafiku starp serveri un klientu padara drošu, to šifrējot. Serveris un klienti droši pārraida datplūsmu, neriskējot, ka trešās puses interpretēs saziņu. Tas arī palīdz klientam pārbaudīt tās vietnes identitāti, ar kuru viņi sazinās.
Šajā amatā mēs aprakstīsim, kā iestatīt SSL Nginx. Mēs demonstrēsim procedūru, izmantojot pašu parakstītu sertifikātu. Pašparakstīts sertifikāts tikai šifrē savienojumu, bet neapstiprina jūsu servera identitāti. Tāpēc to vajadzētu izmantot tikai vides pārbaudei vai iekšējiem LAN pakalpojumiem. Ražošanas videi labāk izmantot sertifikātus, ko parakstījusi CA (sertifikātu iestāde).
Priekšnoteikumi
Šai ziņai jums vajadzētu būt šādiem priekšnosacījumiem:
- Nginx jau ir instalēts jūsu datorā
- Jūsu domēnam konfigurēts servera bloks
- Lietotājs ar sudo privilēģijām
Šeit paskaidrotā procedūra ir veikta Debian 10 (Buster) mašīna.
1. darbība: Pašparakstīta sertifikāta ģenerēšana
Pirmais solis būs pašparakstīta sertifikāta ģenerēšana. Lai ģenerētu CSR (sertifikāta parakstīšanas pieprasījumu) un atslēgu, izsniedziet šādu komandu Terminal:
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout / etc / ssl / private / selfsigned-nginx.atslēga -out / etc / ssl / certs / selfsigned-nginx.crtJums tiks piedāvāts sniegt noteiktu informāciju, piemēram, jūsu valsts nosaukumu, valsti, apdzīvoto vietu, parasto nosaukumu (jūsu domēna nosaukumu vai IP adresi) un e-pasta adresi.
Iepriekš minētajā komandā OpenSSL izveidos šādus divus failus:
- CSR: pašparaksts-nginx.crt iekšā / etc / ssl / cert / direktoriju
- Atslēga: pašparaksts-nginx.taustiņu iekš / etc / ssl / privāts katalogs
Tagad izveidojiet dhparam.pem fails izmantojot šādu komandu:
$ sudo openssl dhparam -out / etc / ssl / certs / dhparam.pem 20482. darbība: Nginx konfigurēšana lietošanai SSL
Iepriekšējā solī mēs esam izveidojuši CSR un atslēgu. Šajā solī mēs konfigurēsim Nginx izmantot SSL. Šim nolūkam mēs izveidosim konfigurācijas fragmentu un pievienosim informāciju par mūsu SSL sertifikātu failiem un galvenajām atrašanās vietām.
Izdodiet komandu Terminal, lai izveidotu jaunu konfigurācijas fragmentu pašparakstīts.conf fails iekš / etc / nginx / fragmenti.
$ sudo nano / etc / nginx / snippets / self-parakstīts.konfFailā pievienojiet šādas rindas:
ssl_certificate / etc / ssl / certs / selfsigned-nginx.crt;ssl_certificate_key / etc / ssl / private / selfsigned-nginx.atslēga;
The ssl_certificate ir iestatīts uz pašparaksts-nginx.crt (sertifikāta fails), kamēr ssl_certificate_key ir iestatīts uz pašparaksts-nginx.taustiņu (atslēgas fails).
Saglabājiet un aizveriet pašparakstīts.konf failu.
Tagad mēs izveidosim vēl vienu fragmenta failu ssl-params.konf un konfigurējiet dažus SSL pamata iestatījumus. Izdodiet šādu komandu Terminal, lai rediģētu ssl-params.konf fails:
$ sudo nano / etc / nginx / snippets / ssl-params.konfPievienojiet failam šādu saturu:
ssl_protocols TLSv1.2;ssl_prefer_server_ciphers ieslēgts;
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: ECDA4E;
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache koplietots: SSL: 10m;
ssl_session_tickets off;
# ssl_stapling on;
# ssl_stapling_verify on;
8. risinātājs.8.8.8 8.8.4.4 derīgi = 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";
Tā kā mēs neizmantojam CA parakstītu sertifikātu, tāpēc esam atspējojuši SSL skavošanu. Ja izmantojat CA parakstītu sertifikātu, noņemiet komentāru ssl_stapling ieraksts.
3. darbība: konfigurējiet Nginx lietošanai SSL
Tagad mēs atvērsim Nginx servera bloka konfigurācijas failu, lai veiktu dažas konfigurācijas. Šajā solī mēs pieņemsim, ka jūs jau esat iestatījis servera bloku, kas būs līdzīgs šim:
serverisklausīties 80;
klausies [::]: 80;
root / var / www / test.org / html;
indeksa indekss.HTML indekss.htm indekss.nginx-debian.html;
servera_nosaukuma pārbaude.org www.pārbaude.org;
atrašanās vieta /
try_files $ uri $ uri / = 404;
Lai atvērtu Nginx servera bloka konfigurācijas failu, izmantojiet šādu komandu:
$ sudo nano / etc / nginx / sites-available / test.orgTagad modificējiet esošo serveris bloķēt, lai tas izskatās šādi:
serverisklausīties 443 ssl;
klausies [::]: 443 ssl;
ietver fragmentus / pašparakstus.konf;
ietver fragmentus / ssl-params.konf;
root / var / www / test.org / html;
indeksa indekss.HTML indekss.htm indekss.nginx-debian.html;
servera_nosaukuma pārbaude.org www.pārbaude.org;
Iepriekš minētajās konfigurācijās mēs esam pievienojuši arī SSL fragmentus pašparakstīts.konf un ssl-params.konf ko esam konfigurējuši iepriekš.
Pēc tam pievienojiet a otrais serveris bloķēt.
serverisklausīties 80;
klausies [::]: 80;
servera_nosaukuma pārbaude.org www.pārbaude.org;
atgriezties 302 https: // $ servera_nosaukums $ pieprasijums_uri;
Iepriekš minētajā konfigurācijā, atgriešanās 302 novirza HTTP uz HTTPS.
Piezīme: Pārliecinieties, ka esat nomainījis testu.org ar savu domēna vārdu. Tagad saglabājiet un aizveriet failu.
4. darbība. Atļaujiet SSL trafiku, izmantojot ugunsmūri
Ja jūsu sistēmā ir iespējots ugunsmūris, jums būs jāļauj SSL trafiks caur to. Nginx nodrošina trīs dažādus profilus ar ufw. Tos var apskatīt, izmantojot šādu komandu Terminal:
$ sudo ufw lietotņu sarakstsJūs redzēsiet šādu izvadi ar trim Nginx trafika profiliem.
Ugunsmūrī jums būs jāatļauj profils “Nginx Full”. Lai to izdarītu, izmantojiet šādu komandu:
$ sudo ufw ļauj 'Nginx Full'Lai pārbaudītu, vai profils ir atļauts ugunsmūrī, izmantojiet šādu komandu:
$ sudo ufw statuss5. darbība: pārbaudiet NGINX konfigurācijas failu
Tagad pārbaudiet Nginx konfigurācijas failu, izmantojot šādu komandu Terminal:
$ sudo nginx -tJums vajadzētu redzēt zemāk esošo izvadi.
Tagad izveidojiet simbolisko saiti starp pieejamām vietnēm un vietnēm, kurās iespējota:
Pēc tam restartējiet pakalpojumu Nginx, lai piemērotu konfigurācijas izmaiņas. Lai to izdarītu, izmantojiet zemāk esošo komandu:
$ sudo systemctl restartējiet nginx6. darbība: pārbaudiet SSL
Lai pārbaudītu SSL, dodieties uz šo adresi:
https: // domēna vai IP adrese
Tā kā esam iestatījuši pašparakstītu sertifikātu, mēs redzēsim brīdinājumu, ka savienojums nav drošs. Lietojot Mozilla Firefox pārlūku, tiek parādīta šī lapa.
Noklikšķiniet uz Papildu pogu.
Klikšķis Pievienot izņēmumu.
Pēc tam noklikšķiniet Apstipriniet drošības izņēmumu.
Tagad jūs redzēsiet savu HTTPS vietni, bet ar brīdinājuma zīmi (bloķējiet ar dzeltenu brīdinājuma zīmi) par savas vietnes drošību.
Pārbaudiet arī, vai novirzīšana darbojas pareizi, piekļūstot savam domēnam vai IP adresei, izmantojot http.
http: // domēna vai IP adrese
Ja jūsu vietne automātiski novirza uz HTTPS, tas nozīmē, ka novirzīšana darbojās pareizi. Lai neatgriezeniski konfigurētu novirzīšanu, rediģējiet servera bloka konfigurācijas failu, izmantojot šādu komandu Terminal:
$ sudo nano / etc / nginx / sites-available / test.orgTagad mainiet atdevi 302 Atgriezties 301 failā un pēc tam saglabājiet un aizveriet to.
Tieši tā jūs varat iestatīt SSL Nginx sistēmā Debian 10 sistēmā. Mēs esam izveidojuši pašparakstītu sertifikātu demonstrēšanai. Ja atrodaties ražošanas vidē, vienmēr iegūstiet CA sertifikātu.