HTTP

Notiek HTTP novirzīšana uz HTTPS

Notiek HTTP novirzīšana uz HTTPS
Neatkarīgi no tā, vai izmantojat pašparakstītus vai labi pazīstamu CA sertifikātus, jums ir nepieciešams veids, kā tos integrēt savos pakalpojumos. Viens no tipiskākajiem HTTP servera lietošanas gadījumiem var būt tīmekļa serveris vai REST API serveris, taču tas ir jākonfigurē, lai būtu drošs.

Lielākā daļa tīmekļa serveru, piemēram, nginx un apache, pēc noklusējuma klausās 80. portā, un, pirms tie sāk izmantot sertifikātus, lai šifrētu trafiku, ir nepieciešama diezgan daudz konfigurācijas. Neskatoties uz tā konfigurēšanu, tīmekļa serveris joprojām var apkalpot HTTP trafiku. Tātad jūsu vietnes apmeklētāji vienkārši ierakstīs http: // example.com, nevis https: // piemērs.com un visa datplūsma viņiem paliks nešifrēta. Lai apietu šo problēmu, mums ir jākonfigurē HTTP serveri tā, lai viņi paši visu HTTP novirzītu uz HTTPS.

Manā iestatījumā tiek izmantots FQDN ar publisku IP, tāpēc es izsniegšu SSL sertifikātu no LetsEncrypt, nevis izsniedzu pats parakstītu. Atkarībā no izmantotā tīmekļa servera veida to varat izdarīt vairākos veidos. Bet tā vispārējā plūsma ir šāda:

  1. Iegūstiet parakstītu sertifikātu no CA. Mūsu gadījumā tas būs LetsEncrypt
  2. Konfigurējiet tīmekļa serveri izmantot šifrēšanas atslēgu, lai šifrētu izejošo HTTP trafiku 443. portā. Šī ir noklusējuma HTTPS ports.
  3. Novirziet visus ienākošos pieprasījumus 80. portā (kas ir nešifrēts HTTP) uz 443. portu, tādējādi ļaujot šifrētas sesijas visiem ienākošajiem savienojumiem.

Parādīsim dažādus veidus, kā sasniegt vēlamo. Pirmais ir vienkāršākais risinājums, kas izmanto Certbot.

1. Vieglākais veids - Certbot spraudņu izmantošana Nginx vai Apache

Es šim serverim izmantošu Nginx kā piemēru. Ja jūs izmantojat citu, piemēram, Apache vai HAProxy, vienkārši apmeklējiet Certbot oficiālo lapu un izvēlieties savu OS un izvēlēto tīmekļa serveri. Nginx operētājsistēmā Ubuntu 18.04, šīs ir komandas, kas jums nepieciešamas.

Vispirms atjauniniet repo indeksu.

$ sudo apt-get atjauninājums
$ sudo apt-get install software-properties-common

Jums būs jāpievieno nepieciešamās trešo pušu krātuves, kuras, iespējams, Ubuntu pēc noklusējuma nav iespējojis.

$ sudo add-apt-repository Visums
$ sudo add-apt-repository ppa: certbot / certbot
$ sudo apt-get atjauninājums

Pēc tam instalējiet certbot pakotni ar Nginx spraudņiem, izmantojot zemāk esošo komandu.

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

Instrukcija dažādām platformām būs atšķirīga, un, ja iespējams, instalējiet spraudņus tīmekļa serverim. Spraudņi ļoti atvieglo mūsu dzīvi tāpēc, ka tie var automātiski rediģēt konfigurācijas failus tīmekļa serverī, lai arī novirzītu trafiku. Negatīvie aspekti varētu būt tādi, ka, ja jūs izmantojat ļoti pielāgotu serveri iepriekšējai vietnei, tad spraudnis var salauzt dažas lietas.

Jaunām vietnēm vai ļoti vienkāršām konfigurācijām, piemēram, reverse proxy, spraudnis darbojas pārsteidzoši labi. Lai iegūtu sertifikātus un novirzītu datplūsmu, vienkārši palaidiet zemāk esošo komandu un izpildiet dažādas interaktīvās opcijas, kamēr pakete iziet cauri tām.

$ sudo certbot --nginx

Izeja:

certbot - ninks
Atkļūdošanas žurnāla saglabāšana mapē / var / log / letsencrypt / letsencrypt.žurnāls
Atlasītie spraudņi: Authenticator nginx, Installer nginx
Ievadiet e-pasta adresi (tiek izmantota steidzamai atjaunošanai un drošības paziņojumiem) (ievadiet “c” t
atcelt): JŪSU PASŪTĪTĀJS @ PIEMĒRS.COM
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Lūdzu, izlasiet pakalpojumu sniegšanas noteikumus vietnē
https: // ļaujšifrēt.org / dokumenti / LE-SA-v1.2.-novembris-15-2017.pdf. Tev vajag
vienoties, lai reģistrētos ACME serverī vietnē
https: // acme-v02.api.ļauj šifrēt.org / direktorijs
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Gree / (C) ancel:
 

Jūsu konfigurācijas failos netika atrasts neviens nosaukums. Lūdzu, ievadiet savā domēnā
nosaukums (-i) (atdalīts ar komatu un / vai atstarpi) (Lai atceltu, ievadiet “c”): SUBDOMAIN.DOMĒNA VĀRDS.TLD

 
Lūdzu, izvēlieties, vai novirzīt HTTP trafiku uz HTTPS, noņemot HTTP piekļuvi.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Nav novirzīšanas - neveiciet papildu izmaiņas tīmekļa servera konfigurācijā.
2: Novirzīšana - veiciet visu pieprasījumu novirzīšanu, lai nodrošinātu piekļuvi HTTPS. Izvēlieties šo
jaunas vietnes vai ja esat pārliecināts, ka jūsu vietne darbojas HTTPS. To var atsaukt
mainīt, rediģējot tīmekļa servera konfigurāciju.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Izvēlieties atbilstošo numuru [1-2], pēc tam [ievadiet] (nospiediet taustiņu 'c', lai atceltu): 2
Pārvirzot visu trafiku 80. ostā uz SSL mapē / etc / nginx / sites-enabled / default
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Apsveicu! Jūs esat veiksmīgi iespējojis vietni https: // SUBDOMAIN.DOMĒNA VĀRDS.TLD
 
Pārbaudiet konfigurāciju vietnē:
https: // www.ssllabs.com / ssltest / analizēt.html?d = apakšdomēna.DOMĒNA VĀRDS.TLD
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

SVARĪGAS PIEZĪMES:
- Apsveicu! Jūsu sertifikāts un ķēde ir saglabāti:

/ etc / letsencrypt / live / SUBDOMAIN.DOMĒNA VĀRDS.TLD / pilna ķēde.pem

Jūsu atslēgas fails tika saglabāts vietnē:

/ etc / letsencrypt / live / SUBDOMAIN.DOMĒNA VĀRDS.TLD / privkey.pem

Kā parādīts iepriekšējā piemērā, sertifikāta iegūšanai ir jānorāda tikai derīga e-pasta adrese un domēna nosaukums. Šis sertifikāts ir piešķirts / etc / letsencrypt / live / SUBDOMAIN.DOMĒNA VĀRDS.TLD. Pēdējais direktorijs tiks nosaukts pēc jūsu FQDN.

Vissvarīgākais aspekts ir opcijas Novirzīšana izvēle, un tā veiks visu HTTP trafiku novirzīšanu uz HTTPS. Ja vēlaties zināt, kādas ir šīs izmaiņas, varat pārbaudīt konfigurācijas failus / etc / nginx / lai uzzinātu tā būtību.

2. Rediģēt Config failus

Ja vēlaties manuāli konfigurēt serveri sertifikātu lietošanai. Lai iegūtu sertifikātus, izmantojot certbot, palaidiet:

$ sudo certbot certonly

Tāpat kā iepriekš, sertifikāti tiek saglabāti direktorijā / etc / letsencrypt / live / yourdomainname.com /

Tagad mēs varam konfigurēt Nginx izmantot failus šajā direktorijā. Pirmkārt, vispirms atbrīvošos no konkrētā Debian direktorija izkārtojuma. Noklusējuma lapas vietnes konfigurācijas fails ir / etc / nginx / sites-available / default apakšdirektorijs ar simbolu saiti uz / etc / nginx / iespējota vietne.

Es vienkārši izdzēsīšu symlink un pārvietošu konfigurācijas failu uz / etc / nginx / conf.d ar a .conf paplašinājums, lai lietas būtu vispārīgākas un piemērojamas arī citiem distros.

$ sudo rm / etc / sites-enabled / default
$ sudo mv / etc / nginx / sites-available / default / etc / nginx / conf.d / noklusējums.konf
$ sudo pakalpojums nginx restartējas

Es modificēšu šo noklusējuma konfigurācijas failu, lai parādītu, kā tiek iespējota TLS.

Šis ir noklusējuma konfigurācijas faila saturs bez komentētajām sadaļām. Izceltās sadaļas ir jāpievieno servera konfigurācijai, lai iespējotu TLS, un pēdējais šī konfigurācijas faila bloks nosaka, vai shēma izmanto TLS vai nē. Ja TLS netiek izmantots, tas vienkārši atdod klientam 301 novirzīšanas kodu un maina URL, lai tā vietā izmantotu https. Tādā veidā jūs nepalaidīsit garām lietotājus

serveris
noklausīties 80 default_server;
klausīties [::]: 80 default_server;
klausīties 443 ssl;
ssl_certificate / etc / letsencrypt / live / SUBDOMAIN.DOMAIN.TLS / pilna ķēde.pem;
ssl_certificate_key / etc / letsencrypt / live / SUBDOMAIN.DOMAIN.TLD / privkey.pem;
ssl_session_cache shared: le_nginx_SSL: 1m;
ssl_session_timeout 1440m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers ieslēgts;
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;
indeksa indekss.HTML indekss.htm indekss.nginx-debian.html;
servera_nosaukums _;
atrašanās vieta /
try_files $ uri $ uri / = 404;

ja ($ shēma != "https")
atgriešanās 301 https: // $ resursdators $ request_uri;

 

Šim konfigurācijas failam ir pievienoti daži papildu parametri. Ieskaitot parametrus, kas deklarē taimautu, TLS versiju, kas jums jāizmanto, un kādus šifrēšanas šifrus serveris izmantos. Tas tika aizņemts no Certbot ieteiktajām (bet pēc izvēles) Nginx konfigurācijām.

Tagad pārbaudiet, vai konfigurācijas fails ir derīgs, un restartējiet serveri.

$ sudo nginx -t
nginx: konfigurācijas fails / etc / nginx / nginx.konf sintakse ir ok
nginx: konfigurācijas fails / etc / nginx / nginx.konf tests ir veiksmīgs
$ sudo pakalpojums nginx restartējas

Secinājums

Šo pašu pieeju varat izmantot sarežģītākām tīmekļa lietotnēm un pakalpojumiem, kuriem nepieciešams HTTPS. Ļaujiet šifrēt, izsniedzot sertifikātus vairākiem domēna vārdiem vienlaikus, un jūs varat diezgan viegli mitināt vairākas vietnes aiz sava nginx tīmekļa servera. Ja sekojāt iepriekš minētajam piemēram, mēģiniet sazināties ar savu vietni, izmantojot http (http: // SUBDOMAIN.DOMAIN.TLD), un jūs tiksiet automātiski novirzīts uz HTTPS.

Citiem tīmekļa serveriem, piemēram, Apache, izmantojiet atbilstošo certbot spraudni vai skatiet to oficiālo dokumentāciju.

Vidējā peles poga nedarbojas sistēmā Windows 10
The peles vidējā poga palīdz jums ritināt garas tīmekļa lapas un ekrānus ar lielu datu daudzumu. Ja tas apstājas, jūs galu galā izmantosiet tastatūru,...
Kā nomainīt peles kreiso un labo pogu operētājsistēmā Windows 10
Tas ir diezgan normāli, ka visas datora peles ierīces ir ergonomiski izstrādātas lietotājiem ar labo roku. Bet ir pieejamas peles ierīces, kas ir īpaš...
Atdariniet peles klikšķus, virzot kursoru, izmantojot operētājsistēmā Windows 10 bezklikšķu peli
Peles vai tastatūras lietošana nepareizā pozā, ja to lieto pārmērīgi daudz, var izraisīt daudz veselības problēmu, tostarp spriedzi, karpālā kanāla si...