Kif Tippermetti HTTPS għal Varnish Cache billi tuża Hitch fuq CentOS-RHEL 8
Varnish Cache m'għandux appoġġ indiġenu għal SSL/TLS u protokolli oħra assoċjati mal-port 443. Jekk qed tuża Varnish Cache biex issaħħaħ il-prestazzjoni tal-applikazzjoni tal-web tiegħek, għandek bżonn tinstalla u tikkonfigura biċċa softwer oħra msejħa prokura ta' terminazzjoni SSL/TLS, biex taħdem flimkien ma' Varnish Cache biex tippermetti HTTPS.
The Hitch huwa proxy SSL/TLS b'xejn ta' sors miftuħ, ibbażat fuq il-libev, u skalabbli ddisinjat għal Varnish Cache, li bħalissa jaħdem fuq Linux, OpenBSD, FreeBSD, u MacOSX. Jittemm il-konnessjonijiet TLS/SSL billi jisma fuq il-port 443 (il-port default għall-konnessjonijiet HTTPS) u jgħaddi t-traffiku mhux kriptat lil Varnish Cache, madankollu, għandu jaħdem ma 'backends oħra wkoll.
Jappoġġja għal TLS1.2 u TLS1.3 u TLS legacy 1.0/1.1, jappoġġja ALPN (Application-Layer Protocol Negotiation) u NPN (Next Protocol Negotiation) għal HTTP/2, protokoll PROXY biex is-sinjal tal-klijent IP/port għal backend , konnessjonijiet tas-socket tad-dominju UNIX mal-oriġini, SNI (Indikazzjoni tal-Isem tas-Server), bi u mingħajr ċertifikati wildcard. Barra minn hekk, jaħdem tajjeb għal installazzjonijiet kbar li jeħtieġu sa 15,000 socket tas-smigħ u 500,000 ċertifikat.
Bħala kontinwazzjoni taż-żewġ artikoli preċedenti tagħna dwar l-installazzjoni ta’ Varnish Cache għal servers HTTP Nginx u Apache, din il-gwida turi li tippermetti HTTPS għal Varnish Cache billi tuża Hitch TLS Proxy fuq CentOS/RHEL 8.
Din il-gwida tassumi li installajt Varnish għal Nginx jew Apache web server, inkella, ara:
- Kif tinstalla Varnish Cache 6 għal Nginx Web Server fuq CentOS/RHEL 8
- Kif tinstalla Varnish Cache 6 għal Apache Web Server fuq CentOS/RHEL 8
Pass 1: Installa Hitch fuq CentOS/RHEL 8
1. Il-pakkett Hitch huwa pprovdut fir-repożitorju EPEL (Extra Packages for Enterprise Linux). Biex tinstallah, l-ewwel ippermetti EPEL fis-sistema tiegħek u mbagħad installa l-pakkett minn hemm 'il quddiem. Jekk m'għandekx pakkett OpenSSL installat, installah ukoll.
# dnf install epel-release # dnf install hitch openssl
2. Meta l-installazzjoni tal-pakkett tkun kompluta, ser ikollok tikkonfigura Vernish Cache biex taħdem Hitch. Trid ukoll tikkonfigura Hitch biex tuża ċ-ċertifikati SSL/TLS u l-Verniċ tiegħek bħala backend. Il-fajl tal-konfigurazzjoni prinċipali ta' Hitch jinsab f'/etc/hitch/hitch.conf, li huwa spjegat hawn taħt.
Pass 2: Konfigurazzjoni tal-Verniċ Cache għal Hitch
3. Sussegwentement, ppermetti Verniċ biex tisma 'port addizzjonali (8443 fil-każ tagħna) billi tuża l-appoġġ tal-protokoll PROXY, għal komunikazzjonijiet ma' Hitch.
Allura tiftaħ il-fajl tas-servizz Vernish systemd għall-editjar.
# systemctl edit --full varnish
Fittex il-linja ExecStart u żid marka -a
addizzjonali bil-valur 127.0.0.1:8443,proxy. L-użu ta 'valur ta' 127.0.0.1:8443 ifisser li Verniċ jaċċetta biss il-konnessjoni interna (minn proċessi li jaħdmu fuq l-istess server jiġifieri hitch f'dan il-każ) iżda mhux konnessjonijiet esterni.
ExecStart=/usr/sbin/varnishd -a :80 -a 127.0.0.1:8443,proxy -f /etc/varnish/default.vcl -s malloc,256m
Issejvja l-fajl u mbagħad ibda mill-ġdid is-servizz tal-Verniċ biex tapplika l-aħħar bidliet.
# systemctl restart varnish
Pass 3: Ksib ta' Ċertifikati SSL/TLS
4. F'din it-taqsima, se nispjegaw kif toħloq il-pakkett taċ-ċertifikati SSL/TLS biex jintuża taħt Hitch. Għal din il-gwida, aħna se nispjegaw l-għażliet differenti ta 'kif tuża ċertifikat iffirmat minnha nfisha, ċertifikat kummerċjali, jew wieħed minn Let's Encrypt.
Biex toħloq ċertifikat awtofirmat (li għandek tuża biss f'ambjent ta' ttestjar lokali), tista' tuża l-għodda OpenSSL.
# mkdir /etc/ssl/tecmint.lan # cd /etc/ssl/tecmint.lan/ # openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tecmint.lan.key -out tecmint.lan.crt
Imbagħad oħloq mazz taċ-ċertifikat u ċ-ċavetta kif ġej.
# cat tecmint.crt tecmint.key >tecmint.pem
Nota: Għall-użu fil-produzzjoni, tista' jew tixtri ċertifikat minn Awtorità taċ-Ċertifikati kummerċjali (CA) jew taqbad ċertifikat b'xejn, awtomatizzat u kompletament rikonoxxut minn Let's Encrypt. Imbagħad oħloq pakkett PEM.
Jekk xtrajt ċertifikat minn CA kummerċjali, għandek bżonn tgħaqqad iċ-ċavetta privata, iċ-ċertifikat, u l-pakkett CA kif muri.
# cat example.com.key example.com.crt example.com-ca-bundle.crt > /etc/ssl/example.com.pem
Għal Let's Encrypt, iċ-ċertifikat, iċ-ċavetta privata, u l-katina sħiħa se jinħażnu taħt /etc/letsencrypt/live/example.com/, għalhekk oħloq il-pakkett kif muri.
# cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem >/etc/letsencrypt/live/example.com/example.com_bundle.pem
Pass 4: Konfigurazzjoni u Bidu tal-Irbit
5. Sussegwentement, ikkonfigura Verniċ bħala backend għal Hitch u speċifika l-fajls taċ-ċertifikati SSL/TLS biex tużah għall-HTTPS, fil-fajl tal-konfigurazzjoni prinċipali ta 'Hitch, iftaħha għall-editjar.
# vi /etc/hitch/hitch.conf
Is-sezzjoni tal-frontend tiddefinixxi l-indirizzi IP u l-port Hitch se jisma '. Il-konfigurazzjoni awtomatika hija li tisma 'fuq l-interfaces IPv4 u IPv6 kollha mehmuża fuq is-server u timxi fuq il-port 443 u tieħu ħsieb it-talbiet HTTPS deħlin, u tgħaddihom lil Varnish.
Ibdel il-port default backend proxy minn 6086 għal 8443 (il-port użat biex jgħaddi t-talbiet lil Varnish) fil-fajl tal-konfigurazzjoni Hitch, billi tuża l-parametru backend. Ukoll, speċifika l-fajl taċ-ċertifikat billi tuża l-parametru pem-file kif muri.
backend = "[127.0.0.1]:8443" #pem-dir = "/etc/pki/tls/private" pem-file = "/etc/ssl/tecmint.lan/tecmint.pem"
Issejvja l-fajl u agħlaqha.
6. Issa ibda s-servizz tal-irbit u ppermettih jibda awtomatikament fil-boot tas-sistema. Innota li s-swiċċ --now
meta jintuża ma 'enable, jibda servizz systemd ukoll u mbagħad iċċekkja l-istatus biex tara jekk huwiex qed jaħdem kif ġej.
# systemctl enable --now hitch # systemctl status hitch
7. Qabel ma tipproċedi biex tittestja jekk is-sit web/l-applikazzjoni tiegħek issa qed taħdem fuq HTTPS, għandek bżonn tippermetti li l-port tas-servizz HTTPS 443 fil-firewall jippermetti li t-talbiet iddestinati għal dak il-port fuq is-server jgħaddu mill-firewall.
# firewall-cmd --zone=public --permanent --add-service=https # firewall-cmd --reload
Pass 5: Ittestjar tat-Terminazzjoni SSL/TLS b'Setup tal-Varnish Cache-Hitch
8. Issa wasal iż-żmien li tittestja s-setup tal-Varnish Cache-Hitch. Iftaħ web browser u uża l-IP tad-dominju jew tas-server tiegħek biex tinnaviga fuq HTTPS.
https://www.example.com OR https://SERVER_IP/
Ladarba l-paġna tal-indiċi tal-applikazzjoni tal-web tiegħek tkun mgħobbija, iċċekkja l-headers HTTP biex tikkonferma li l-kontenut qed jiġi servut permezz tal-Varnish Cache.
Biex tagħmel dan, ikklikkja bil-lemin fuq il-paġna web mgħobbija, agħżel Spezzjona mil-lista ta 'għażliet biex tiftaħ l-għodod tal-iżviluppatur. Imbagħad ikklikkja fuq it-tab tan-Netwerk, u Reload the page, imbagħad agħżel talba biex tara l-headers HTTP, kif enfasizzat fil-screenshot li ġej.
Pass 6: Id-direzzjoni mill-ġdid ta' HTTP għal HTTPS fil-Verniċ Cache
9. Biex tmexxi s-sit web tiegħek fuq HTTPS biss, għandek bżonn terġa 'tidderieġi t-traffiku HTTP kollu għal HTTPS. Tista' tagħmel dan billi żżid il-konfigurazzjoni li ġejja fil-fajl tal-konfigurazzjoni ta' Hitch tiegħek.
# vi /etc/hitch/hitch.conf
L-ewwel, żid il-linja importazzjoni std; eżatt taħt il-vlc 4.0;, imbagħad fittex is-subrutina vlc_recv, li hija l-ewwel subrutina VCL eżegwita immedjatament wara li Varnish Cache tkun analizzat it-talba tal-klijent fl-istruttura bażika tad-dejta tagħha. Huwa fejn nistgħu nimmodifikaw l-intestaturi tar-rikjesta u nwettqu synth biex iindirizzaw mill-ġdid it-talbiet tal-klijenti.
Immodifikaha biex tidher bħal din.
sub vcl_recv { if (std.port(server.ip) != 443) { set req.http.location = "https://" + req.http.host + req.url; return(synth(301)); } }
Innota li l-protokoll PROXY jippermetti lil Vernish biex jara l-port tas-smigħ ta’ Hitch 443 mill-varjabbli server.ip. Allura l-linja std.port(server.ip) tirritorna n-numru tal-port li fuqu ġiet irċevuta l-konnessjoni tal-klijent.
Jekk il-port mhuwiex 443 għal HTTPS (kif iċċekkjat minn (std.port(server.ip) != 443)), is-subrutina se tissettja l-header tal-lokazzjoni HTTP tat-talba (sett req.http.location) għal talba sigura (“ https://” + req.http.host + req.url) sempliċement titlob lill-web browser biex jgħabbi verżjoni HTTPS tal-paġna web (jiġifieri direzzjoni mill-ġdid tal-URL).
L-intestatura tal-Post se tintbagħat lis-subrutina vcl_synth (li tissejjaħ bl-użu ta' return(synth(301))) b'kodiċi tal-istatus HTTP ta' 301 (Imċaqlaq b'mod permanenti).
10. Sussegwentement, żid is-subrutina vcl_synth li ġejja (wieħed mill-ħafna każijiet ta 'użi tiegħu huwa direzzjoni mill-ġdid lill-utenti), biex tipproċessa s-sintet ta' hawn fuq.
sub vcl_synth { if (resp.status == 301) { set resp.http.location = req.http.location; set resp.status = 301; return (deliver); } }
Jiċċekkja jekk l-istatus tar-rispons hux 301, l-header tal-Post HTTP fir-rispons huwa ssettjat għall-header tal-Post HTTP fit-talba li fil-fatt hija direzzjoni mill-ġdid lejn HTTPS u tesegwixxi azzjoni ta 'kunsinna.
L-azzjoni deliver tibni rispons bir-rispons mill-backend, taħżen ir-rispons fil-cache, u tibgħatha lill-klijent.
Issejvja l-fajl u agħlaqha.
11. Għal darb'oħra, applika l-bidliet ġodda fil-konfigurazzjoni tal-Verniċ billi terġa 'tibda s-servizz. Imbagħad uża l-għodda tal-linja tal-kmand curl biex tikkonferma direzzjoni mill-ġdid minn HTTP għal HTTPS.
# systemctl restart varnish # curl -I http://eaxmple.com/
Mill-browser, ir-rispons huwa wkoll l-istess kif muri fil-screenshot li ġej.
Nittamaw li kollox ħadem tajjeb sa dan il-punt. Jekk le, waqqa' kumment jew mistoqsijiet permezz tal-formola ta' feedback hawn taħt. Għal kwalunkwe għażla ta' konfigurazzjoni avvanzata, mur fid-dokumentazzjoni ta' Hitch.