HTTP

HTTP ümbersuunamine HTTPS-ile

HTTP ümbersuunamine HTTPS-ile
Sõltumata sellest, kas kasutate ise allkirjastatud sertifikaate või tuntud CA sertifikaate, peate selle oma teenustega integreerima. Üks HTTP-serveri tüüpilisemaid kasutusjuhtumeid võib olla veebiserver või REST API-server, kuid see tuleb konfigureerida, et see oleks turvaline.

Enamik veebiservereid, näiteks nginx ja apache, kuulavad vaikimisi porti 80 ja vajavad liikluse krüpteerimiseks sertifikaatide kasutamist, enne kui hakkavad sertifikaate kasutama. Hoolimata selle konfigureerimisest suudab veebiserver HTTP-liiklust siiski probleemideta teenindada. Nii et teie veebisaidi külastajad kirjutavad lihtsalt näite http: //.com https: // näite asemel.com ja kogu liiklus jääb nende jaoks krüptimata. Selle probleemi vältimiseks peame konfigureerima HTTP-serverid nii, et nad ise suunaksid kogu HTTP-d HTTPS-i.

Minu seadistus kasutab avaliku IP-ga FQDN-i, seega väljastan LetsEncryptilt SSL-sertifikaadi, mitte ei anna ise allkirjastatut. Sõltuvalt kasutatava veebiserveri tüübist saate seda teha mitmel viisil. Kuid selle üldine voog on selline:

  1. Hankige allkirjastatud sertifikaat CA-lt. Meie puhul saab see olema LetsEncrypt
  2. Konfigureerige veebiserver krüptovõtme abil väljuva HTTP-liikluse krüptimiseks pordil 443. See on HTTPS-i vaikeport.
  3. Suunake kõik 80. pordi (mis on krüptimata HTTP) kõik sissetulevad taotlused pordile 443, võimaldades seeläbi kõigi sissetulevate ühenduste jaoks krüptitud seansse.

Demonstreerime erinevat viisi, kuidas soovida. Esimene on lihtsaim lahendus, mis kasutab Certboti.

1. Lihtsaim viis - Certboti pistikprogrammide kasutamine Nginxi või Apache jaoks

Kasutan selle serveri näitena Nginxi. Kui teil on mõni muu, näiteks Apache või HAProxy, siis külastage lihtsalt Certboti ametlikku lehte ja valige oma operatsioonisüsteem ja valitud veebiserver. Nginxi jaoks Ubuntu 18-s.04, need on käsud, mida vajate.

Esiteks värskendage oma repoindeksit.

$ sudo apt-get värskendus
$ sudo apt-get install tarkvara-omadused-ühine

Peaksite lisama nõutavad kolmanda osapoole hoidlad, mida Ubuntu ei pruugi vaikimisi lubada.

$ sudo add-apt-repository universum
$ sudo add-apt-hoidla ppa: certbot / certbot
$ sudo apt-get värskendus

Seejärel installige Certboti pakett koos Nginxi pistikprogrammidega, kasutades allolevat käsku.

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

Juhised on erinevate platvormide jaoks erinevad ja installige veebiserveri jaoks pluginad, kui need on saadaval. Pistikprogrammid muudavad meie elu palju lihtsamaks seetõttu, et nad saavad veebiserveri konfiguratsioonifaile automaatselt redigeerida, et ka liiklus suunata. Negatiivne külg võib olla see, et kui kasutate juba olemasoleva veebisaidi jaoks väga kohandatud serverit, võib pistikprogramm seal mõned asjad lõhkuda.

Uute veebisaitide või väga lihtsate konfiguratsioonide, näiteks vastupidise puhverserveri puhul töötab pistikprogramm üllatavalt hästi. Sertifikaatide hankimiseks ja liikluse ümbersuunamiseks käivitage lihtsalt järgmine käsk ja järgige erinevaid interaktiivseid valikuid, kui pakett neid läbi juhatab.

$ sudo certbot --nginx

Väljund:

certbot - nginx
Silumislogi salvestamine kataloogi / var / log / letsencrypt / letsencrypt.logi
Valitud pistikprogrammid: Authenticator nginx, Installer nginx
Sisestage e-posti aadress (kasutatakse kiireloomuliseks uuendamiseks ja turvateateks) (sisestage 'c' t
Tühista): SINU KOHALIK @ näide.KOM
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Palun lugege teenusetingimusi aadressil
https: // laseb krüptida.org / dokumendid / LE-SA-v1.2. november-15-2017.pdf. Sa pead
leppima kokku, et registreeruda ACME serveris aadressil
https: // acme-v02.api.laseb krüptida.org / kataloog
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(G) gree / (C) ancel:
 

Teie konfiguratsioonifailidest ei leitud ühtegi nime. Sisestage oma domeen
nimi (nimed) (komaga ja / või tühikuga eraldatud) (tühistamiseks sisestage „c”): SUBDOMAIN.DOMEENINIMI.TLD

 
Valige, kas suunata HTTP-liiklus HTTPS-ile või mitte, eemaldades HTTP-juurdepääsu.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: ümbersuunamist pole - tehke veebiserveri konfiguratsioonis täiendavaid muudatusi.
2: ümbersuunamine - kõik taotlused suunatakse HTTPS-i juurdepääsu tagamiseks ümber. Valige see
uusi saite või kui olete kindel, et teie sait töötab HTTPS-is. Saate selle tagasi võtta
muutmiseks muutke veebiserveri konfiguratsiooni.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Valige sobiv number [1-2] ja seejärel sisestage sisestusklahv (tühistamiseks vajutage 'c'): 2
Kogu liikluse sadamas 80 suunamine SSL-i kataloogis / etc / nginx / saidid lubatud / vaikimisi
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Palju õnne! Olete https: // SUBDOMAIN edukalt lubanud.DOMEENINIMI.TLD
 
Peaksite oma konfiguratsiooni testima aadressil:
https: // www.ssllabs.com / ssltest / analüüsima.HTML?d = alamdomeen.DOMEENINIMI.TLD
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

TÄHTIS MÄRKUS:
- Palju õnne! Teie sertifikaat ja kett on salvestatud aadressil:

/ etc / letsencrypt / live / SUBDOMAIN.DOMEENINIMI.TLD / täisahel.pem

Teie võtmefail on salvestatud aadressil:

/ etc / letsencrypt / live / SUBDOMAIN.DOMEENINIMI.TLD / privkey.pem

Nagu ülaltoodud näites näidatud, peate sertifikaadi saamiseks esitama ainult kehtiva e-posti aadressi ja oma domeeninime. See sertifikaat on seotud / etc / letsencrypt / live / SUBDOMAIN.DOMEENINIMI.TLD. Viimane kataloog nimetatakse teie FQDN järgi.

Kõige olulisem aspekt on suvandi Suunamine valimine ja see täidab kogu HTTP-liikluse HTTPS-i suunamise tööd. Kui soovite teada, millised need muudatused on, saate konfigureerimisfaile kontrollida / etc / nginx / et sellest aru saada.

2. Config-failide muutmine

Kui soovite oma serveri käsitsi konfigureerida sertifikaatide kasutamiseks. Certboti abil sertifikaatide saamiseks käivitage:

$ sudo certbot certonly

Nagu varemgi, salvestatakse sertifikaadid kataloogi / etc / letsencrypt / live / yourdomainname.com /

Nüüd saame Nginxi konfigureerida selles kataloogis olevaid faile kasutama. Kõigepealt vabanen Debiani spetsiifilisest kataloogipaigutusest. Vaikelehe saidi konfiguratsioonifail on / etc / nginx / sites-available / default alamkataloog, millel on sümboli link / etc / nginx / saidil lubatud.

Kustutan lihtsalt sümboli ja teisaldan konfiguratsioonifaili kataloogi / etc / nginx / conf.d koos a-ga .conf laiendus lihtsalt selleks, et hoida asju üldisemalt ja ka teiste distrode puhul.

$ sudo rm / etc / sites-enabled / default
$ sudo mv / etc / nginx / sites-available / default / etc / nginx / conf.d / vaikimisi.konf
$ sudo teenuse nginx taaskäivitamine

Muudan seda vaikimisi konfiguratsioonifaili, et näidata, kuidas TLS on lubatud.

Järgnev on teie vaikimisi konfiguratsioonifaili sisu ilma kommenteeritud väljadeta. Esiletõstetud jaotised on need, mille peate lisama oma serveri konfiguratsioonile, et lubada TLS-i ja selle konfiguratsioonifaili viimane plokk tuvastab, kas skeem kasutab TLS-i või mitte. Kui TLS-i ei kasutata, tagastab see kliendile lihtsalt 301 ümbersuunamiskoodi ja muudab URL-i selle asemel, et kasutada https-i. Nii ei jää te kasutajatest ilma

server
kuulata 80 default_server;
kuula [::]: 80 default_server;
kuulata 443 ssl;
ssl_certificate / etc / letsencrypt / live / SUBDOMAIN.DOMAIN.TLS / täisahel.pem;
ssl_certificate_key / etc / letsencrypt / live / SUBDOMAIN.DOMAIN.TLD / privkey.pem;
ssl_session_cache jagatud: le_nginx_SSL: 1m;
ssl_session_timeout 1440m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers sisse;
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 ";
juur / var / www / html;
indeksindeks.HTML-i register.htm indeks.nginx-debian.HTML;
serveri_nimi _;
asukoht /
proov_failid $ uri $ uri / = 404;

kui (skeem $ != "https")
tagastage 301 https: // $ host $ request_uri;

 

Sellele konfiguratsioonifailile on lisatud mõned lisaparameetrid. Sealhulgas aegumise deklareerivad parameetrid, TLS-i versioon, mida peaksite kasutama, ja milliseid krüpteerimisšifreid server kasutab. See laenati Certboti soovitatud (kuid valikulistest) Nginxi konfiguratsioonidest.

Nüüd kontrollige, kas konfiguratsioonifail on kehtiv, ja taaskäivitage server.

$ sudo nginx -t
nginx: konfiguratsioonifail / etc / nginx / nginx.konf süntaks on ok
nginx: konfiguratsioonifail / etc / nginx / nginx.konf test on edukas
$ sudo teenuse nginx taaskäivitamine

Järeldus

Sama lähenemist saate rakendada ka keerukamate veebirakenduste ja teenuste jaoks, mis vajavad HTTPS-i. Letsencrypt lubame teil väljastada sertifikaate korraga mitmele domeeninimele ja saate oma nginxi veebiserveri taga üsna hõlpsasti majutada mitu veebisaiti. Kui järgisite ülaltoodud näidet, proovige oma veebisaidile jõuda, kasutades http (http: // SUBDOMAIN.DOMAIN.TLD) ja teid suunatakse automaatselt HTTPS-i.

Muude veebiserverite (nt Apache) jaoks kasutage sobivat certboti pistikprogrammi või vaadake nende ametlikku dokumentatsiooni.

League of Legendsi installimine Ubuntu 14-le.04
Kui olete League of Legends fänn, siis on see teile võimalus proovida League of Legendsit. Pange tähele, et LOL-i toetab PlayOnLinux, kui olete Linuxi...
Installige uusim OpenRA strateegiamäng Ubuntu Linuxi
OpenRA on tasuta / tasuta reaalajas strateegiamängumootor, mis loob uuesti Westwoodi varased mängud nagu klassikaline Command & Conquer: Red Alert. Ja...
Installige Linuxile uusim Dolphin Emulator for Gamecube & Wii
Dolphini emulaator võimaldab teil mängida valitud Gamecube & Wii mänge Linuxi personaalarvutites (PC). Vabalt saadaval oleva ja avatud lähtekoodiga m...