Hoe Nginx opgestel word om selfgetekende SSL / TLS-sertifikaat op Ubuntu 18.04 VPS of die toegewyde bediener te gebruik

inleiding

SSL (Secure Sockets Layer) en TLS (Transport Layer Security) is webprotokolle wat gebruik word om normale verkeer te beskerm deur dit in ‘n geïnkripteer vorm te verpak.


Hierdie tegnologie het ‘n sertifikaatstelsel wat private kommunikasie tussen bedieners en kliënte moontlik maak. Dit skep ‘n veilige pad vir bedieners om verkeer na kliënte te stuur sonder dat die inligting deur ander partye gemanipuleer word.

In hierdie handleiding neem ons u deur die proses om ‘n self-ondertekende SSL / TLS-sertifikaat te skep en dit op Nginx te gebruik. In hierdie geval gebruik ons ​​Ubuntu 18.04-bediener.

voorvereistes

Voordat u begin, benodig u die volgende:

  • ‘N Nie-wortelgebruiker met sudo-voorregte
  • ‘N Geïnstalleerde Nginx-bediener

Laat ons nou in die proses ingaan.

Stap 1: Skep selfondertekende sertifikaat

As dit kom by die implementering van SSL / TLS-sertifikate, werk hulle deur ‘n stel openbare sertifikate en ‘n privaat sleutel. Die SSL-sertifikaat is ‘n openbare dokument wat gedeel word met kliënte wat die inhoud versoek. Aan die ander kant word die SSL-sleutel gebruik in die kodering van boodskappe wat aan kliënte gestuur word en dit moet as ‘n geheim op u bediener gehou word.

Voer die onderstaande opdrag uit om ‘n sertifikaat en ‘n self-ondertekende sleutel met SSL te skep:

$ sudo openssl req -x509 -nodes -dae 365 -newkey rsa: 2048 -keyout /etc/ssl/private/example.com.key -out /etc/ssl/certs/example.com.crt

OpenSSL: Hierdie opdragreëlinstrument om die OpenSSL-sertifikaat, sleutels en ander lêers te genereer en te bestuur.

req: Dit is ‘n subopdrag wat aandui dat ons X.509 CSR (sertifikaatondertekeningversoek) -bestuur wil gebruik. X.509 is die openbare sleutelinfrastruktuurstandaard waaraan TLS en SSL voldoen vir sy sertifikaat en sleutelbestuur. In ons geval genereer ons ‘n nuwe X.509-sertifikaat, en om hierdie rede gebruik ons ​​req.

-x509: Dit wysig die req-sub-opdrag. Dit lig die nut in dat ons ‘n sertifikaat met ‘n selfs ondertekenaar skep in plaas van ‘n CSR te genereer.

 -nodes: Dit beveel OpenSSL om nie die sertifikaat met ‘n wagwoordfrase te beveilig nie. ‘N Wagwoordfrase verhoed dat Nginx ons lêer lees sodra die bediener begin word.

-dae 365: Dit bepaal die duur van die sertifikaatgeldigheid.

-newkey rsa: 2048: Dit is ‘n opdrag wat sê dat ons gelyktydig ‘n nuwe sleutel en sertifikaat sal genereer. RSA: 2048 gee die diens opdrag om ‘n RSA-sleutel van 2048 stukkies te skep.

-keyout: Dit is ‘n reël wat OpenSSL opdrag gee om die geskepde private sleutel te stoor.

-uit: Die lyn gee OpenSSL die opdrag om die geskepde sertifikaat te stoor.

Na bogenoemde opdrag, sal u gevra word om ‘n paar vrae oor die sertifikaat wat u wil genereer, te beantwoord.

Hoe Nginx opgestel word om selfgetekende SSL / TLS-sertifikaat op Ubuntu 18.04 VPS of die toegewyde bediener te gebruik

Lees dit aandagtig deur en gee die regte antwoorde om die proses te voltooi. Die belangrike reël om op hierdie afdeling te let, is die een wat die algemene naam soos U naam of bediener ten volle gekwalifiseerde domeinnaam (FQDN) benodig. Voer in hierdie geval u domeinnaam of die openbare IP-adres in wat met die bediener geassosieer word.  .

U moet die afvoer hieronder hê:

OutputIT
Landnaam (2 letterkode) [AU]: VS
StateorProvinceName (volle naam) [Some-State]: New York
Liggingsnaam (bv. Stad) []: New YorkCity
Organisasienaam (bv. Onderneming) [Internet Widgits Pty Ltd] :: Voorbeeldonderneming
OrganizationalUnitName (bv. Afdeling) []: SSL-eenheid
Algemene naam (bv. ServerFQDNorYOURname) []: bediener_IP_adres
E-posadres []: [email protected]_domain.com

As u klaar is, sal die twee lêers in die regte subgidse in die / Etc / ssl directory.

U benodig hierdie lêers as verwysing in die Nginx-konfigurasie-instellings. Dit is ook belangrik om ‘n sterk DH (Diffie-Hellman) -groep te skep wat noodsaaklik is in die onderhandelinge van die vooruitgeheim met kliënte.

Om dit te doen, voer die opdrag hieronder uit:

$ Sudo openssl dhparam -out /etc/nginx/dhparam.pem 4096

Hierdie proses kan ‘n rukkie duur, maar sodra dit klaar is, sal u DH (Diffie-Hellman) -groep geberg word by /etc/nginx/dhparam.pem wat gebruik kan word in die Nginx-opstelling.

Hoe Nginx opgestel word om selfgetekende SSL / TLS-sertifikaat op Ubuntu 18.04 VPS of die toegewyde bediener te gebruik

Stap 2: Stel Nginx HTTP-webbediener op om SSL te gebruik

Aangesien ons reeds die sertifikaat en sleutel en lêers geskep het, kan ons beweeg om Nginx met hierdie instellings op te stel.

Maar voor dit, hier is ‘n paar aanpassings wat ons aan ons konfigurasie moet aanbring om gemeenskaplike afdelings in herbruikbare eenhede te plaas.

Skep ‘n konfigurasiestuk vir SSL-sleutel en sertifikaat

Begin met die skep van ‘n brokkie vir die Nginx-opstelling in die / Etc / nginx / brokkies gids. Ons sal hierdie lêer self onderteken .conf.

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

Stel nou die ssl_certificate na die gepaardgaande lêer en ssl_certificate_key na die meegaande sleutel. Dit gee u die volgende afvoer:

/etc/nginx/snippets/self-signed.conf
ssl_certificate /et##c/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

Stoor en verlaat die lêer.

Genereer ‘n konfigurasiestuk om SSL-instellings te definieer

Die volgende stap is om ‘n ekstra stuk met sterk SSL-koderingsinstellings te skep. Dit sal ander bykomende funksies in staat stel om u bediener veilig te hou.

In hierdie geval gaan ons ‘n generiese naam kies soos hieronder getoon:

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

Om te verseker dat Nginx SSL veilig ingestel is, gebruik ons ​​die formaat op die webwerf Cipherli.st, wat maklik om te gebruik koderingsriglyne vir gewilde sagteware bevat..

Vir hierdie tutoriaal kopieer ons die instellings wat op hierdie webwerf voorsien word, maar ons verander ‘n paar reëls.

In hierdie geval sal ons ons DNS-resolusie insluit vir verskillende stroomversoeke. Ons sal ook die lyn wat verantwoordelik is vir die sekuriteitskop van die vervoerder, uitskakel.

Kopieër die onderstaande besonderhede in u naamstuk ssl-params.conf.

ssl_protocols TLSv1.2;
ssl_prefer_server_cipherson;
ssl_dhparam /etc/nginx/dhparam.pem;
ssl_ciphers ECDHE-RSA-AES256-BKM-SHA512: dhe-RSA-AES256-BKM-SHA512: ECDHE-RSA-AES256-BKM-SHA384: dhe-RSA-AES256-BKM-SHA384: ECDHE-RSA-AES256-SHA384;
ssl_ecdh_curve secp384r1; # Vereis nginx >= 1.1.0
ssl_session_timeout 10m;
ssl_session_cache gedeel: SSL: 10m;
ssl_session_ticketsoff; # Vereis nginx >= 1.5.9
ssl_staplingon; # Vereis nginx >= 1.3.7
ssl_stapling_verifyon; # Vereis nginx => 1.3.7
resolver8.8.8.88.8.4.4 geldig = 300s;
resolver_timeout5s;
# Skakel nou streng vervoersekuriteit uit. U kan die volgende ondermyn
# lyn as u die implikasies verstaan.
# add_header Streng-vervoer-sekuriteit "Max-ouderdom = 63072000; includeSubDomains; voorbelading";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-beskerming "1; modus = blok";

Aangesien ons slegs van ‘n selfgetekende sertifikaat gebruik maak, is dit nie nodig om SSL-krammetjies in te sluit nie. Nginx sal kramming outomaties deaktiveer en voortgaan om behoorlik te werk.

Stoor en verlaat die lêer.

Verander die Nginx-opstelling om na SSL te wysig

Sodra u klaar is met brokkies, pas nou die Nginx-opstelling aan om SSL toe te laat.

Vir hierdie voorbeeld gebruik ons ​​/etc/nginx/sites-available/example.com. Vervang die lêernaam in u konfigurasie met die een wat u wil gebruik.

Begin egter eers met die rugsteun van die huidige konfigurasielêer:

$ sudo cp /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com.bak

Maak u lêer oop en pas die toepaslike lyn aan soos hieronder getoon:

$ sudo nano /etc/nginx/sites-available/example.com

U sal ‘n uitset soos hierdie sien:

/etc/nginx/sites-available/example.com
bediener {
luister 80;
luister [::]: 80;

bedienernaam voorbeeld.com www.voorbeeld.com;

root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;

. . .
}

U kan verskillende konfigurasie-stellings ontdek waar gedeeltes soos wortel en indeks kan verskyn as ligging, proxy_pass, of ander konfigurasies. Dit is belangrik om te noem dat dit in orde is om hierdie riglyne te hê, u hoef net die opdatering te doen luister stellings en sluit die SSL-brokkies in.

Gaan voort in u huidige konfigurasielêer en werk die luisterstate op na SSL-bediener op die poort 443 en ssl. Sluit ook die brokkielêers wat in die vorige twee stappe geskep is, in:

/etc/nginx/sites-available/example.com
bediener {
luister 443 ssl;
luister [::]: 443 ssl;
sluit brokkies / self-signed.conf;
sluit brokkies / ssl-params.conf in;

bedienernaam voorbeeld.com www.voorbeeld.com;

root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;

. . .
}

Plak ‘n ander bedienersblok in die blok na die sluithakie (}) van die bostaande blok hierbo konfigurasie lêer:

/etc/nginx/sites-available/example.com
. . .
bediener {
listen80;
luister [::]: 80;

bedienernaam voorbeeld.com www.voorbeeld.com;

return302 https: // $ server $ request_uri;
}

Die bogenoemde konfigurasie luister op poort 80, behalwe om die aansture na HTTP’s uit te voer.

Stoor en verlaat die lêer sodra u klaar is.

Stap 3: Pas die instellings van Ufw Firewall aan

As die ufw-firewall aangeskakel is, moet u die stelselinstellings aanpas om verkeer deur SSL moontlik te maak.

Sodra die installasie voltooi is, sal Nginx verskeie profiele by ufw registreer.

U kan hierdie profiele sien deur die opdrag hieronder uit te voer:

$ Sudo ufw-programlys

U sal ‘n uitset soos hierdie sien:

Beskikbaar aansoeke:
Nginx vol
Nginx HTTP
Nginx HTTPS
OpenSSH

Voer die opdrag hieronder uit om te sien watter opstelling geaktiveer is:

$ Sudo ufw status


U moet ‘n uitset soos hierdie hê om aan te toon dat u webbediener slegs HTTP-verkeer sal toelaat:

uitset
Status: aktief

Tot aksie vanaf
—                         ——      —-
OpenSSH TOE Enige plek
Nginx HTTP TOELAAT enige plek
OpenSSH (v6) TOE Enige plek (v6)
Nginx HTTP (v6) TOE Enige plek (v6)

Om te verseker dat die HTTPS-verkeer glad vloei, laat die “Nginx Full” -profiel toe en verwyder die Nginx HTTP-oortollige profiel:

$ Sudo ufw laat ‘Nginx Full’ toe
$ Sudo ufw skrap toelaat ‘Nginx HTTP’

U uitset moet so lyk:

$ Sudo ufw status

uitset

Status: aktief

Tot aksie vanaf
—                         ——      —-
OpenSSH TOE Enige plek
Nginx vol LAAT Enige plek
OpenSSH (v6) TOE Enige plek (v6)
Nginx Vol (v6) LAAT Enige plek (v6)

Stap 4: Herbegin Nginx om die veranderinge toe te pas

Sodra die aanpassings aan die firewall aangebring is, moet u die Nginx-diens herbegin om die wysigings toe te pas.

Maak ook seker dat daar geen foute in u lêers is nie. Om dit te doen, voer die opdrag hieronder uit:

$ Sudo nginx -t

As alles reg werk, moet u die volgende uitvoer kry:

nginx: [waarsku] "ssl_stapling" geïgnoreer, uitreikersertifikaat nie gevind nie
nginx: die konfigurasielêer /etc/nginx/nginx.confsyntax is ok
nginx: konfigurasielêer /etc/nginx/nginx.conftest is suksesvol

Begin nou nginx om die veranderinge toe te pas:

$ Sudo systemctl herbegin nginx

Stap 5: Toets die SSL-bediener

Toets vervolgens of die SSL-kodering werk.

Tik in jou blaaier die voorvoegsel http: // en dan jou domeinnaam:

https: // server_domain

Aangesien die sertifikaat nie reeds deur ‘n vertroude sertifikaatowerheid onderteken is nie, kry u waarskynlik ‘n waarskuwing soos hieronder:

U sal ‘n waarskuwing sien wat kan verskyn, omdat die SSL-sertifikaat wat vroeër geskep is, nie deur ‘n vertroude sertifikaatowerheid onderteken is nie:

Hoe Nginx opgestel word om selfgetekende SSL / TLS-sertifikaat op Ubuntu 18.04 VPS of die toegewyde bediener te gebruik

Moenie bekommerd wees as u hierdie boodskap sien nie, dit is normaal. Die belangrikste ding is die koderingsfunksie van die sertifikaat. Kies die Gevorderde opsie en die skakel wat volg om na die gasheer voort te gaan.

Hoe Nginx opgestel word om selfgetekende SSL / TLS-sertifikaat op Ubuntu 18.04 VPS of die toegewyde bediener te gebruik

U sal na u webwerf verwys word. In die blaaierbalk sien u miskien iets wat lyk soos ‘n slot met ‘n simbool “X” oor dit. Dit dui aan dat die sertifikaat nog nie gevalideer is nie en dat die kodering nog steeds aan die gang is.

Om te kontroleer of HTTP-inhoudherleiding behoorlik werk, tik die volgende in:

http: // server_domain_or_IP

As die resultate van die sluitikoon dieselfde is, beteken dit dat die herleiding behoorlik funksioneer.

Stap 6: Wys op permanente aansture

As u seker is dat u slegs geïnkripteer verkeer wil toelaat, is dit belangrik om die Nginx-opstelling te verander om permanente aansture te skep.

Gebruik die opdrag hieronder om die bedienerblokkonfigurasie lêer oop te maak:

$ sudo nano /etc/nginx/sites-available/example.com

Vind terugkeer 302 en vervang dit met terugkeer 301:

return301 https: // $ server $ request_uri;

Stoor veranderinge en maak die lêer toe

Bestudeer nou die konfigurasie vir moontlike sintaksfoute met behulp van die opdrag hieronder:

$ Sudo nginx -t

Herbegin Nginx om die wysigings te voltooi:

$ Sudo systemctl herbegin nginx

Afsluiting

Daar het jy dit! U het Nginx suksesvol gekonfigureer om SSL / TLS-sertifikaat te gebruik. Dit is ‘n veilige manier om versoeke van kliënte toe te laat en te verhoed dat ander partye toegang tot u verkeer kry.

Kyk na die top 3 Linux-gasheerdienste

FastComet

Beginprys:
$ 2.95


betroubaarheid
9.7


pryse
9.5


Gebruikersvriendelik
9.7


ondersteuning
9.7


Kenmerke
9.6

Lees resensies

Besoek FastComet

Hostinger

Beginprys:
$ 0.99


betroubaarheid
9.3


pryse
9.3


Gebruikersvriendelik
9.4


ondersteuning
9.4


Kenmerke
9.2

Lees resensies

Besoek Hostinger

ChemiCloud

Beginprys:
$ 2,76


betroubaarheid
10


pryse
9.9


Gebruikersvriendelik
9.9


ondersteuning
10


Kenmerke
9.9

Lees resensies

Besoek ChemiCloud

Verwante artikels oor hoe om te doen

  • Hoe om ‘n Let’s Encrypt Certificate op u Ubuntu 18.04-toegewyde bediener of VPS te installeer
    intermediêre
  • Hoe om die LEMP (Linux, Nginx, MySQL, PHP) stapel te installeer op ‘n Ubuntu 18.04 VPS of ‘n toegewyde bediener
    intermediêre
  • Hoe u eie wolk installeer op ‘n Ubuntu 18.04-toegewyde bediener of VPS
    intermediêre
  • Hoe u phpMyAdmin op Ubuntu 18.04 VPS of die toegewyde bediener kan beveilig?
    intermediêre
  • Hoe om WordPress Multisite op te stel op Ubuntu 18.04 met Apache Web Server
    intermediêre
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me