HTTP

HTTP peradresuojama į HTTPS

HTTP peradresuojama į HTTPS
Nesvarbu, ar naudojate pačių pasirašytus, ar gerai žinomos CA sertifikatus, jums reikia būdų juos integruoti į savo paslaugas. Vienas iš tipiškiausių HTTP serverio naudojimo atvejų gali būti žiniatinklio serveris arba REST API serveris, tačiau jis turi būti sukonfigūruotas, kad būtų saugus.

Daugelis žiniatinklio serverių, pvz., „Nginx“ ir „apache“, pagal numatytuosius nustatymus klausosi 80 prievado ir jiems reikia nemažai konfigūracijos, kol jie pradeda naudoti sertifikatus srautui užšifruoti. Nepaisant to, kad žiniatinklio serveris sukonfigūruotas, jis vis tiek gali aptarnauti HTTP srautą. Taigi jūsų svetainės lankytojai tiesiog įves http: // pavyzdį.com vietoj https: // pavyzdys.com ir visas srautas jiems liks neužšifruotas. Norėdami apeiti šią problemą, turime sukonfigūruoti HTTP serverius taip, kad jie patys peradresuotų visą HTTP į HTTPS.

Mano nustatyta sąranka naudoja FQDN su viešuoju IP, todėl aš išduosiu SSL sertifikatą iš „LetsEncrypt“, o ne išduosiu pats pasirašytą. Priklausomai nuo naudojamo interneto serverio rūšies, galite tai padaryti keliais būdais. Bet bendras jo srautas yra toks:

  1. Gaukite pasirašytą sertifikatą iš CA. Mūsų atveju tai bus „LetsEncrypt“
  2. Konfigūruokite žiniatinklio serverį naudoti šifravimo raktą, kad užšifruotumėte išeinantį HTTP srautą 443 prievade. Tai yra numatytasis HTTPS prievadas.
  3. Peradresuokite visas gaunamas užklausas 80 prievade (kuris yra neužšifruotas HTTP) į 443 prievadą, tokiu būdu įgalindami užšifruotus seansus visiems gaunamiems ryšiams.

Parodykime įvairų būdą, kaip pasiekti tai, ko norime. Pirmasis yra paprasčiausias sprendimas, naudojant „Certbot“.

1. Lengviausias būdas - „Certbot“ įskiepių naudojimas „Nginx“ ar „Apache“

Šio serverio pavyzdžiu naudosiu „Nginx“. Jei naudojate kitą, pvz., „Apache“ ar „HAProxy“, tiesiog apsilankykite oficialiame „Certbot“ puslapyje ir pasirinkite savo OS bei pasirinktą žiniatinklio serverį. „Nginx“ sistemoje „Ubuntu 18“.04, tai jums reikalingos komandos.

Pirmiausia atnaujinkite atpirkimo indeksą.

$ sudo apt-get atnaujinimas
$ sudo apt-get install software-properties-common

Turėsite pridėti reikalingas trečiųjų šalių saugyklas, kurių „Ubuntu“ gali būti neįgalinta pagal numatytuosius nustatymus.

$ sudo add-apt-repository visata
$ sudo add-apt-repository ppa: certbot / certbot
$ sudo apt-get atnaujinimas

Tada įdiekite „certbot“ paketą su „Nginx“ papildiniais naudodami toliau pateiktą komandą.

$ sudo apt-get install certbot python-certbot-nginx

Nurodymai skirtingoms platformoms bus skirtingi ir įdiekite žiniatinklio serverio papildinius, jei jų yra. Priedai labai palengvina mūsų gyvenimą, nes jie gali automatiškai redaguoti konfigūracijos failus žiniatinklio serveryje, kad taip pat nukreiptų srautą. Trūkumas gali būti tas, kad jei naudojate labai pritaikytą serverį, skirtą jau esančiai svetainei, tai papildinys gali sugadinti kai kuriuos dalykus.

Naujų svetainių ar labai paprastų konfigūracijų, pvz., Atvirkštinio tarpinio serverio, papildinys veikia stebėtinai gerai. Norėdami gauti sertifikatus ir nukreipti srautą, tiesiog paleiskite žemiau esančią komandą ir vykdykite įvairias interaktyvias parinktis, kai paketas jus apžvelgia.

$ sudo certbot --nginx

Išvestis:

certbot - nginx
Derinimo žurnalo išsaugojimas aplanke / var / log / letsencrypt / letsencrypt.žurnalas
Pasirinkti papildiniai: „Authenticator nginx“, „Installer nginx“
Įveskite el. Pašto adresą (naudojamas skubiam atnaujinimui ir saugos pranešimams) (įveskite „c“ t
atšaukti): JŪSŲ PASLAUGOS @ PAVYZDYS.KOM
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Perskaitykite paslaugų teikimo sąlygas šiuo adresu:
https: // letsencrypt.org / dokumentai / LE-SA-v1.2017 m. Lapkričio 2 d. - 15-15 d.pdf. Tu privalai
sutikti, kad galėtumėte užsiregistruoti ACME serveryje adresu
https: // acme-v02.api.leidžiašifruoti.org / katalogas
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(G) gree / (C) ancel:
 

Konfigūracijos failuose pavadinimų nerasta. Įveskite savo domeną
vardas (-ai) (atskirtas kableliais ir (arba) tarpais) (norėdami atšaukti įveskite „c“): SUBDOMAIN.DOMENO VARDAS.TLD

 
Pasirinkite, ar norite nukreipti HTTP srautą į HTTPS, pašalindami HTTP prieigą.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Nėra peradresavimo - daugiau nekeiskite žiniatinklio serverio konfigūracijos.
2: Peradresuoti - visus prašymus peradresuoti, kad būtų užtikrinta prieiga prie HTTPS. Pasirinkite tai
naujų svetainių arba jei esate įsitikinę, kad jūsų svetainė veikia naudojant HTTPS. Tai galite anuliuoti
pakeisti redaguodami žiniatinklio serverio konfigūraciją.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Pasirinkite reikiamą skaičių [1-2], tada [įveskite] (norėdami atšaukti paspauskite „c“): 2
Peradresuojamas visas 80 prievado srautas į SSL aplanke / etc / nginx / sites-enabled / default
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sveikiname! Jūs sėkmingai įgalinote https: // SUBDOMAIN.DOMENO VARDAS.TLD
 
Turėtumėte išbandyti savo konfigūraciją:
https: // www.ssllabs.com / ssltest / analizuoti.HTML?d = SUBDOMAIN.DOMENO VARDAS.TLD
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

SVARBIOS PASTABOS:
- Sveikiname! Jūsų sertifikatas ir grandinė išsaugoti:

/ etc / letsencrypt / live / SUBDOMAIN.DOMENO VARDAS.TLD / „fullchain“.pem

Jūsų rakto failas išsaugotas:

/ etc / letsencrypt / live / SUBDOMAIN.DOMENO VARDAS.TLD / privkey.pem

Kaip parodyta aukščiau pateiktame pavyzdyje, norėdami gauti sertifikatą, turite pateikti tik galiojantį el. Pašto adresą ir domeno vardą. Šis pažymėjimas yra naudojamas / etc / letsencrypt / live / SUBDOMAIN.DOMENO VARDAS.TLD. Paskutinis katalogas bus pavadintas pagal jūsų FQDN.

Svarbiausias aspektas yra parinktis Peradresuoti ir jis atliks darbą, nukreipdamas visą HTTP srautą į HTTPS. Jei smalsu, kokie yra šie pakeitimai, galite patikrinti konfigūracijos failus / etc / nginx / kad suprastum jo esmę.

2. Redaguoti „Config“ failus

Jei norite rankiniu būdu sukonfigūruoti serverį naudoti sertifikatus. Norėdami gauti sertifikatus naudodami „certbot“, paleiskite:

$ sudo certbot certonly

Kaip ir anksčiau, sertifikatai išsaugomi kataloge / etc / letsencrypt / live / yourdomainname.com /

Dabar galime sukonfigūruoti „Nginx“ naudoti failus šiame kataloge. Pirmiausia, aš atsikratysiu Debian katalogo išdėstymo. Numatytasis puslapio svetainės konfigūracijos failas yra / etc / nginx / sites-available / default pakatalogis su simboline nuoroda į / etc / nginx / įgalinta svetainė.

Aš tiesiog ištrinsiu symlink ir perkelsiu konfigūracijos failą į / etc / nginx / conf.d su a .conf pratęsimas, kad viskas būtų apibendrinta ir pritaikyta ir kitiems distros.

$ sudo rm / etc / sites-enabled / default
$ sudo mv / etc / nginx / sites-available / default / etc / nginx / conf.d / numatytasis.konf
$ sudo paslaugos nginx paleiskite iš naujo

Pakeisiu šį numatytąjį konfigūracijos failą, norėdamas parodyti, kaip įgalinamas TLS.

Toliau pateikiamas numatytojo konfigūracijos failo turinys be komentuojamų skyrių. Paryškintos skiltys, kurias turėtumėte pridėti prie savo serverio konfigūracijos, kad įgalintumėte TLS, o paskutinis šio konfigūracijos failo blokas nustato, ar schema naudoja TLS, ar ne. Jei TLS nenaudojamas, jis tiesiog grąžina klientui 301 peradresavimo kodą ir pakeičia URL vietoj https. Tokiu būdu nepraleisite vartotojų

serveris
klausytis 80 default_server;
klausytis [::]: 80 default_server;
klausytis 443 ssl;
ssl_certificate / etc / letsencrypt / live / SUBDOMAIN.DOMENAS.TLS / „fullchain“.pem;
ssl_certificate_key / etc / letsencrypt / live / SUBDOMAIN.DOMENAS.TLD / privkey.pem;
ssl_session_cache pasidalino: le_nginx_SSL: 1m;
ssl_session_timeout 1440m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers įjungti;
ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305: ECDHE-
ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256
-GCM-SHA384: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES128-GCM-SHA256: DHE-RSA-AES256
-GCM-SHA384: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128
-SHA: ECDHE-RSA-AES256-SHA384: ECDHE-RSA-AES128-SHA: ECDHE-ECDSA-AES256-SHA384: ECDHE
-ECDSA-AES256-SHA: ECDHE-RSA-AES256-SHA: DHE-RSA-AES128-SHA256: DHE-RSA-AES128-SHA: DHE
-RSA-AES256-SHA256: DHE-RSA-AES256-SHA: ECDHE-ECDSA-DES-CBC3-SHA: ECDHE-RSA-DES-CBC3
-SHA: EDH-RSA-DES-CBC3-SHA: AES128-GCM-SHA256: AES256-GCM-SHA384: AES128-SHA256: AES256
-SHA256: AES128-SHA: AES256-SHA: DES-CBC3-SHA:!DSS ";
root / var / www / html;
indekso indeksas.HTML indeksas.htm indeksas.nginx-debian.HTML;
serverio pavadinimas _;
vieta /
try_files $ uri $ uri / = 404;

jei ($ schema != „https“)
grąžinti 301 https: // $ host $ request_uri;

 

Prie šio konfigūracijos failo yra pridėti keli papildomi parametrai. Įskaitant parametrus, nurodančius skirtąjį laiką, TLS versiją, kurią turėtumėte naudoti, ir kokius šifravimo šifrus naudos serveris. Tai buvo pasiskolinta iš „Certbot“ rekomenduojamų (bet neprivalomų) „Nginx“ konfigūracijų.

Dabar patikrinkite, ar teisingas konfigūracijos failas, ir iš naujo paleiskite serverį.

$ sudo nginx -t
nginx: konfigūracijos failas / etc / nginx / nginx.konf sintaksė yra gerai
nginx: konfigūracijos failas / etc / nginx / nginx.konf testas yra sėkmingas
$ sudo paslaugos nginx paleiskite iš naujo

Išvada

Tą patį metodą galite taikyti sudėtingesnėms žiniatinklio programoms ir paslaugoms, kurioms reikalingas HTTPS. „Letsencrypt“ leiskite jums išduoti sertifikatus keliems domenų vardams vienu metu, ir jūs galite gana lengvai talpinti kelias svetaines už savo „nginx“ tinklo serverio. Jei laikėtės pirmiau pateikto pavyzdžio, pabandykite susisiekti su savo svetaine naudodami http (http: // SUBDOMAIN.DOMENAS.TLD) ir būsite automatiškai nukreipti į HTTPS.

Kitiems žiniatinklio serveriams, pvz., „Apache“, naudokite atitinkamą „certbot“ papildinį arba žiūrėkite jų oficialius dokumentus.

Kaip pakeisti pelės ir jutiklinių plokščių slinkimo kryptį sistemoje „Windows 10“
Pelė ir Jutiklinė dalisTai ne tik palengvina skaičiavimus, bet ir efektyvesnį bei mažiau laiko reikalaujantį. Mes neįsivaizduojame gyvenimo be šių pri...
Kaip pakeisti pelės žymeklio ir žymeklio dydį, spalvą ir schemą sistemoje „Windows 10“
„Windows 10“ pelės žymeklis ir žymeklis yra labai svarbūs operacinės sistemos aspektai. Tai galima pasakyti ir apie kitas operacines sistemas, taigi, ...
Nemokami ir atvirojo kodo žaidimų varikliai, skirti kurti „Linux“ žaidimus
Šiame straipsnyje bus pateiktas nemokamų ir atvirojo kodo žaidimų variklių, kurie gali būti naudojami kuriant 2D ir 3D žaidimus „Linux“, sąrašas. Toki...