Kif tikkonfigura Ċertifikat SSL CA f'HAProxy


L-HAProxy huwa prokura inversa użata ħafna, affidabbli, ta 'prestazzjoni għolja, li toffri kapaċitajiet ta' disponibbiltà għolja u ta 'ibbilanċjar tat-tagħbija għal applikazzjonijiet TCP u HTTP. B'mod awtomatiku, hija kkompilata b'OpenSSL, u b'hekk tappoġġja t-terminazzjoni SSL, li tippermetti lill-websajt/il-munzell tal-applikazzjonijiet tiegħek biex jikkripta u jiddeċifra t-traffiku bejn \web entry server tiegħek jew is-server tal-gateway tal-aċċess għall-applikazzjoni u l-applikazzjonijiet tal-klijenti.

Din il-gwida turi kif tikkonfigura ċertifikat CA SSL f'HAPorxy. Din il-gwida tassumi li diġà rċevejt iċ-ċertifikat tiegħek mill-CA u lest biex tinstallah u tikkonfigurah fuq server HAProxy.

Il-fajls mistennija huma:

  • Iċ-ċertifikat innifsu.
  • Iċ-ċertifikati intermedji imsejħa wkoll qatet jew ktajjen, u.
  • L-għerq CA, jekk disponibbli, u.
  • Iċ-ċavetta privata.

Oħloq Fajl taċ-Ċertifikat SSL ifformattjat bil-PEM

Qabel ma tikkonfigura ċ-ċertifikat CA tiegħek f'HAProxy, trid tifhem li HAProxy jeħtieġ fajl wieħed .pem li għandu jkun fih il-kontenut tal-fajls kollha ta' hawn fuq, magħqudin fl-ordni li ġejja:

  • Iċ-ċavetta privata li tispiċċa b'.key, (tista' tiġi fil-bidu jew fit-tmiem tal-fajl).
  • Segwit miċ-Ċertifikat SSL (normalment jispiċċa b'.crt).
  • Imbagħad il-CA-Bundle (ġeneralment jispiċċa b'.ca-bundle), u
  • L-għerq CA, jekk disponibbli.

Biex toħloq il-fajl .pem, imxi fid-direttorju li għandu l-fajls taċ-ċertifikati tiegħek eż. ~/Downloads, imbagħad mexxi l-kmand tal-qtates bħal dan (ibdel l-ismijiet tal-fajls kif xieraq):

$ cat example.com.key STAR_example_com/STAR_example_com.crt STAR_example_com/STAR_example_com.ca-bundle > example.com.pem

Ikkonfigura Ċertifikat SSL PEM f'HAProxy

Sussegwentement, ittella' l-fajl taċ-ċertifikat .pem li għadu kif inħoloq fuq is-server HAProxy billi tuża l-kmand scp kif muri (issostitwixxi sysadmin u 192.168.10.24 bl-isem tal-utent tas-server remot u l-indirizz IP rispettivament):

$ scp example.com.pem  [email :/home/sysadmin/

Imbagħad oħloq direttorju fejn il-fajl taċ-ċertifikat .pem se jinħażen bl-użu tal-kmand mkdir u kkopja l-fajl fih:

$ sudo mkdir -p /etc/ssl/example.com/
$ sudo cp example.com.pem /etc/ssl/example.com/

Sussegwentement, iftaħ il-fajl tal-konfigurazzjoni HAProxy tiegħek u kkonfigura ċ-ċertifikat taħt is-sezzjoni tas-semmiegħ tal-frontend, billi tuża l-parametri ssl u crt: l-ewwel jippermetti t-terminazzjoni SSL u l-aħħar jispeċifika l-post tal-fajl taċ-ċertifikat.

frontend http_frontend
      mode http
      bind *:80
      bind *:443 ssl crt  /etc/ssl/example.com/example.com.pem alpn h2,http/1.1
     redirect scheme https code 301 if !{ ssl_fc }
      default_backend http_servers

Ċerti verżjonijiet ta' SSL/TLS mhumiex rakkomandati għall-użu issa minħabba vulnerabbiltajiet li ġew skoperti fihom. Biex tillimita l-verżjoni appoġġjata ta 'SSL, tista' żżid il-parametru ssl-min-ver bħal dan:

bind *:443 ssl crt  /etc/ssl/example.com/example.com.pem alpn h2,http/1.1   ssl-min-ver TLSv1.2

Ikkonfigura HAProxy biex tirriindirizza HTTP għal HTTPS

Biex tiżgura li l-websajt tiegħek tkun aċċessibbli biss permezz ta' HTTPS, trid tippermetti lil HAProxy biex terġa' tindirizza t-traffiku HTTP kollu għal HTTPS f'każ li utent jipprova jaċċessah fuq HTTP (port 80).

Żid il-linja li ġejja mal-konfigurazzjoni ta' hawn fuq:

redirect scheme https code 301 if !{ ssl_fc }
OR
http-request redirect scheme https unless { ssl_fc }

Is-sezzjoni tal-frontend tiegħek issa għandha tidher bħal dik f'din il-konfigurazzjoni tal-kampjun:

frontend http_frontend
      mode http
      bind *:80
      bind *:443 ssl crt  /etc/ssl/example.com/example.com.pem alpn h2,http/1.1  ssl-min-ver TLSv1.2
      redirect scheme https code 301 if !{ ssl_fc }
      default_backend   http_servers

backend http_servers
      mode http
      balance roundrobin
      option httpchk HEAD /
      http-response set-header X-Frame-Options SAMEORIGIN
      http-response set-header X-XSS-Protection 1;mode=block
      http-response set-header X-Content-Type-Options nosniff
      default-server check maxconn 5000
      server http_server1 10.2.1.55:80

Issejvja l-fajl tal-konfigurazzjoni u agħlaq.

Imbagħad iċċekkja jekk is-sintassi tagħha hijiex korretta billi tuża l-kmand li ġej:

$ sudo haproxy -f /etc/haproxy/haproxy.cfg -c

Jekk il-fajl tal-konfigurazzjoni huwa validu, kompli u erġa' tagħbija s-servizz haproxy biex ttella' l-bidliet riċenti fil-konfigurazzjoni, billi tuża l-kmand systemctl:

$ sudo systemctl reload haproxy

Fl-aħħar iżda mhux l-inqas, ittestja s-setup kollu billi taċċessa l-websajt tiegħek minn web browser u kun żgur li ċ-ċertifikat qed jgħabbi tajjeb u l-browser jindika li l-\Konnessjoni hija sigura!

Dak kollox! Nittamaw li din il-gwida għenet biex tikkonfigura ċertifikat SSL fis-softwer tal-bilanċjar tat-tagħbija HAProxy. Jekk tiltaqa' ma' xi żbalji, għarrafna permezz tal-formola ta' feedback hawn taħt. Inkunu ferħanin li ngħinuk.