HTTPS-i lubamine lakivahemälu jaoks, kasutades CentOS-RHEL 8 haakeseadet


Lakkide vahemälul puudub SSL/TLS-i ja muude porti 443 seotud protokollide loomulik tugi. Kui kasutate veebirakenduse jõudluse suurendamiseks lakkide vahemälu, peate töötamiseks installima ja konfigureerima teise tarkvara, nimega SSL/TLS-i lõpetamise puhverserver HTTPS-i lubamiseks koos Varnish Cache'iga.

Hitch on tasuta avatud lähtekoodiga, libev-põhine ja skaleeritav SSL/TLS-puhverserver, mis on loodud Varnish Cache jaoks, mis töötab praegu Linuxis, OpenBSD-s, FreeBSD-s ja MacOSX-is. See lõpetab TLS/SSL-ühendused, kuulates porti 443 (vaikeport HTTPS-ühenduste jaoks) ja edastab krüptimata liikluse Varnish Cache'ile, kuid see peaks töötama ka teiste taustaprogrammidega.

See toetab seadmeid TLS1.2 ja TLS1.3 ning pärandit TLS 1.0/1.1, toetab ALPN-i (rakenduskihi protokolli läbirääkimisi) ja NPN-i (järgmise protokolli läbirääkimisi) HTTP/2 jaoks, PROXY-protokolli kliendi IP/pordi taustaprogrammile signaalimiseks. , UNIX-i domeeni sokliühendused alguspunktiga, SNI (Server Name Indication), metamärgisertifikaatidega ja ilma. Lisaks töötab see hästi suurte installatsioonide korral, mis nõuavad kuni 15 000 kuulamispesa ja 500 000 sertifikaati.

Meie kahe eelmise artikli Jätkamine vahemälu vahemälu Nginx ja Apache HTTP serverite kohta jätkuna näitab see juhend HTTPS-i lubamist lakivahemälu jaoks, kasutades CentOS/RHEL 8 Hitch TLS-puhverserverit.

Selles juhendis eeldatakse, et olete installinud Nginxi või Apache'i veebiserveri jaoks laki, muidu vaadake:

  • Kuidas installida Nginxi veebiserveri lakkide vahemälu 6 CentOS/RHEL 8-le
  • Kuidas installida Centache/RHEL 8-sse Apache veebiserveri lakivahemik 6

1. samm: paigaldage haakeseade CentOS/RHEL 8-le

1. Hitchi pakett on pakett EPEL (Extra Packages for Enterprise Linux) hoidlas. Selle installimiseks lubage esmalt oma süsteemis EPEL ja seejärel installige pakett. Kui teil pole OpenSSL-i paketti installitud, installige see ka.

# dnf install epel-release
# dnf install hitch openssl

2. Kui paketi installimine on lõpule jõudnud, peate konfigureerima laki vahemälu, et see töötaks Hitchiga. Samuti peate Hitchi konfigureerima oma SSL/TLS-i sertifikaatide ja taustapildina laki kasutamiseks. Hitchi peamine konfiguratsioonifail asub aadressil /etc/hitch/hitch.conf, mida selgitatakse allpool.

2. samm: laki vahemälu konfigureerimine haakeseadme jaoks

3. Seejärel lubage Varnishil Hitchiga suhtlemiseks PROXY protokolli tuge kasutades kuulata täiendavat porti (meie puhul 8443).

Nii avage redigeerimiseks teenuse Varnish systemd fail.

# systemctl edit --full varnish

Otsige rida ExecStart ja lisage täiendav lipp -a väärtusega 127.0.0.1:8443,proxy. Väärtuse 127.0.0.1:8443 kasutamine tähendab, et lakk aktsepteerib ainult sisemist ühendust (protsessorid töötavad samas serveris, st sellisel juhul haakeseadet), kuid mitte väliseid ühendusi.

ExecStart=/usr/sbin/varnishd -a :80 -a 127.0.0.1:8443,proxy -f /etc/varnish/default.vcl -s malloc,256m 

Salvestage fail ja taaskäivitage siis lakk-teenus viimaste muudatuste rakendamiseks.

# systemctl restart varnish

3. samm: SSL/TLS-sertifikaatide hankimine

4. Selles jaotises selgitame, kuidas luua Hitchi all kasutatav SSL/TLS-sertifikaadikogum. Selle juhendi jaoks selgitame erinevaid võimalusi, kuidas kasutada ise allkirjastatud sertifikaati, ärisertifikaati või Let’s Encrypt.

Ise allkirjastatud sertifikaadi (mida peaksite kasutama ainult kohalikus testimiskeskkonnas) loomiseks võite kasutada OpenSSL-i tööriista.

# 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

Seejärel looge sertifikaadi ja võtme komplekt järgmiselt.

# cat tecmint.crt tecmint.key >tecmint.pem

Märkus: tootmiseks saate osta kas sertifikaadi kaubanduslikult sertifitseerimisasutuselt (CA) või haarata Let’s Encryptilt tasuta, automatiseeritud ja täielikult tunnustatud sertifikaadi. Seejärel looge PEM-kimp.

Kui ostsite sertifikaadi kaubanduslikust CA-st, peate ühendama privaatvõtme, sertifikaadi ja CA-paketi, nagu näidatud.

# cat example.com.key example.com.crt example.com-ca-bundle.crt > /etc/ssl/example.com.pem 

Rakenduse Let’s Encrypt jaoks salvestatakse sertifikaat, privaatne võti ja kogu ahel /etc/letsencrypt/live/example.com/, nii et looge kimp nagu näidatud.

# cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem >/etc/letsencrypt/live/example.com/example.com_bundle.pem

4. samm: haakeseadise konfigureerimine ja käivitamine

5. Seejärel konfigureerige Varnish Hitchi taustaprogrammiks ja määrake SSL/TLS-i sertifikaadifailid, mida HTTPS-i jaoks kasutada, avage Hitchi põhikonfiguratsioonifailis see redigeerimiseks.

# vi /etc/hitch/hitch.conf

Eesosa jaotises määratletakse IP-aadressid ja port, mida Hitch kuulab. Vaikekonfiguratsioon on kõigi serveriga ühendatud IPv4- ja IPv6-liideste kuulamine ning pordil 443 töötamine ja sissetulevate HTTPS-päringute käsitlemine, andes need lakile.

Muutke Hitchi konfiguratsioonifailis taustaprogrammi puhverserveri vaikepordiks 6086 koodiks 8443 (port, mida kasutatakse taotluste edastamiseks lakile), kasutades taustaprogrammi parameetrit. Samuti määrake sertifikaadifail, kasutades parameetrit pem-file, nagu näidatud.

backend = "[127.0.0.1]:8443"
#pem-dir = "/etc/pki/tls/private"
pem-file = "/etc/ssl/tecmint.lan/tecmint.pem"

Salvestage fail ja sulgege see.

6. Nüüd käivitage haaketeenus ja lubage see automaatselt käivitada süsteemi käivitamisel. Pange tähele, et lülitiga - nüüd koos lubamisega käivitatakse ka systemd-teenus ja seejärel kontrollige olekut, kas see töötab ja töötab järgmiselt.

# systemctl enable --now hitch
# systemctl status hitch

7. Enne kui jätkate selle testimisega, kas teie veebisait/rakendus töötab nüüd HTTPS-is, peate lubama tulemüüris HTTPS-teenusepordi 443, et lubada serveri selle pordi jaoks mõeldud päringutel tulemüüri läbida.

# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

5. samm: SSL/TLS-i lõpetamise testimine laki vahemälu-haakeseadistusega

8. Nüüd on aeg testida Varnish Cache-Hitch seadistust. Avage veebibrauser ja kasutage HTTPS-i kaudu navigeerimiseks oma domeeni või serveri IP-d.

https://www.example.com
OR
https://SERVER_IP/

Kui teie veebirakenduse registrileht on laaditud, kontrollige HTTP-päiseid, et veenduda, et sisu serveeritakse lakivahemiku kaudu.

Selleks paremklõpsake laaditud veebilehel, valige arendajate tööriistade avamiseks suvandite loendist Kontroll. Seejärel klõpsake vahekaardil Võrk ja laadige leht uuesti, seejärel valige HTTP-päiste kuvamise taotlus, nagu on rõhutatud järgmisel ekraanipildil.

6. samm: HTTP ümbersuunamine HTTPS-i lakivahemikus

9. Veebisaidi käitamiseks ainult HTTPS-iga peate kogu HTTP-liikluse suunama HTTPS-i. Seda saate teha, lisades oma konfigureerimisfaili Hitch järgmise konfiguratsiooni.

# vi /etc/hitch/hitch.conf 

Esiteks lisage rida import std; veidi alla vlc 4.0 ;, siis otsige alamprogrammi vlc_recv, mis on esimene VCL-i alamprogramm, mis käivitatakse kohe pärast seda, kui Varnish Cache on kliendi päringu põhiandmete struktuuris sõelunud. Seal saame muuta päringute päiseid ja käivitada kliendi päringute ümbersuunamiseks süntesaatori.

Muutke seda selliseks välja nägemiseks.

sub vcl_recv {
    if (std.port(server.ip) != 443) {
        set req.http.location = "https://" + req.http.host + req.url;
        return(synth(301));
    }
}

Pange tähele, et PROXY-protokoll võimaldab Varnishil näha Hitchi kuulamisporti 443 server.ip muutujast. Niisiis tagastab rida std.port (server.ip) pordinumbri, millele kliendiühendus saadi.

Kui port pole HTTPS jaoks 443 (seda kontrollib (std.port (server.ip)! = 443)), määrab alamprogramm HTTP-päringu päringu (määrake req.http.location) turvaliseks päringuks (“ https:/”+ req.http.host + req.url) lihtsalt paludes veebibrauseril laadida veebilehe HTTPS-versioon (st URL-i ümbersuunamine).

Asukoha päis saadetakse alamprogrammile vcl_synth (mida nimetatakse return (synth (301) abil) HTTP olekukoodiga 301 (Püsivalt teisaldatud).

10. Seejärel lisage ülaltoodud sünteetika töötlemiseks järgmine alamprogramm vcl_synth (üks selle paljudest kasutamisjuhtumitest on kasutajate ümbersuunamine).

sub vcl_synth {
        if (resp.status == 301) {
                set resp.http.location = req.http.location;
		  set resp.status = 301;
                return (deliver);
        }
}

See kontrollib, kas vastuse olek on 301, vastuse HTTP asukoha päiseks seatakse päringus HTTP asukoha päis, mis on tegelikult suunamine HTTPS-le, ja viib läbi toimingu.

Kohaletoimetamise toiming loob vastuse taustaprogrammi vastusega, salvestab vastuse vahemällu ja saadab selle kliendile.

Salvestage fail ja sulgege see.

11. Rakendage veel kord laki konfiguratsioonis uued muudatused, taaskäivitades teenuse. Seejärel kasutage curl käsurea tööriista, et kinnitada ümbersuunamine HTTP-lt HTTPS-ile.

# systemctl restart varnish
# curl -I http://eaxmple.com/

Brauseri vastus on sama, mis on näidatud järgmisel ekraanipildil.

Loodame, et siiani on kõik hästi toiminud. Kui ei, siis visake kommentaar või küsimused alloleva tagasiside vormi kaudu. Täpsemate seadistusvõimaluste leidmiseks minge Hitchi dokumentatsiooni.