HAProxy-da CA SSL şahadatnamasyny nädip sazlamaly


HAProxy, TCP we HTTP programmalary üçin ýokary elýeterliligi we ýük balans mümkinçiliklerini hödürleýän giňden ulanylýan, ygtybarly, ýokary öndürijilikli ters proksi. Düzgüne görä, OpenSSL bilen düzülýär, şeýlelik bilen SSL-iň ýatyrylmagyny goldaýar, web sahypaňyza/programma bukjasyna\web giriş serweri ýa-da programma giriş şlýuz serweri we müşderi programmalarynyň arasynda traffigi şifrlemek we açarlamak mümkinçiligini berýär.

Bu gollanma, HAPorxy-da CA SSL şahadatnamasyny nädip sazlamalydygyny görkezýär. Bu gollanma, şahadatnamany CA-dan eýýäm alandygyňyzy we ony HAProxy serwerinde gurnamaga we düzmäge taýýardygyňyzy göz öňünde tutýar.

Garaşylýan faýllar:

  • Şahadatnamanyň özi.
  • Aralyk şahadatnamalara bukja ýa-da zynjyr diýilýär we.
  • CA kök, bar bolsa we.
  • Şahsy açar.

PEM formatly SSL şahadatnama faýly dörediň

CA şahadatnamany HAProxy-da düzmezden ozal, HAProxy-nyň aşakdaky tertipde birleşdirilen ýokardaky ähli faýllaryň mazmunyny öz içine alýan ýekeje .pem faýly talap edýändigine düşünmeli:

  • .key bilen gutarýan şahsy açar, (faýlyň başynda ýa-da soňunda gelip biler).
  • SSL şahadatnamasy (adatça .crt bilen gutarýar).
  • Soňra CA-bukja (köplenç .ca-bundle bilen gutarýar) we
  • CA kök, bar bolsa.

.pem faýly döretmek üçin şahadatnama faýllaryňyz bolan kataloga geçiň, mysal üçin ~/süklemeler, soňra pişik buýrugyny şeýle ýerine ýetiriň (faýl atlaryny şoňa görä çalşyň):

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

HAProxy-da PEM SSL şahadatnamasyny sazlaň

Ondan soň, ýaňy döredilen .pem şahadatnama faýlyny görkezilişi ýaly scp buýrugyny ulanyp HAProxy serwerine ýükläň (sysadmin we 192.168.10.24-i uzakdaky serwer ulanyjy ady we IP adresi bilen çalşyň):

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

Soňra mkdir buýrugy bilen şahadatnama .pem faýly saklanjak katalog dörediň we faýly göçüriň:

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

Ondan soň, HAProxy konfigurasiýa faýlyňyzy açyň we ssl we crt parametrlerini ulanyp, şahadatnamany öňdäki diňleýji bölüminde düzüň: birinjisi SSL-i ýatyrmaga mümkinçilik berýär, ikinjisi şahadatnama faýlynyň ýerleşýän ýerini kesgitleýär.

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

SSL/TLS-iň käbir wersiýalarynda ýüze çykarylan gowşaklyklar sebäpli häzir ulanmak maslahat berilmeýär. SSL-iň goldanýan wersiýasyny çäklendirmek üçin ssl-min-ver parametrini goşup bilersiňiz:

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

HAProxy-ny HTTP-e gönükdirmek üçin sazlaň

Web sahypaňyza diňe HTTPS arkaly girip boljakdygyny anyklamak üçin, bir ulanyjy HTTP (80-nji port) üstünden girjek bolsa, HAProxy-ny ähli HTTP traffigini HTTPS-e gönükdirmäge mümkinçilik bermeli.

Aboveokardaky konfigurasiýa aşakdaky setiri goşuň:

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

Öňdäki bölümiňiz indi bu nusga konfigurasiýasyndaky ýaly bolmaly:

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

Sazlama faýly ýazdyryň we ýapyň.

Soňra aşakdaky buýrugy ulanyp, sintaksisiniň dogrudygyny barlaň:

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

Sazlama faýly dogry bolsa, systemctl buýrugyny ulanyp, konfigurasiýadaky soňky üýtgeşmeleri almak üçin gaproksi hyzmatyny täzeden ýükläň:

$ sudo systemctl reload haproxy

Iň soňkusy, web brauzerinden web sahypaňyza girip, ähli sazlamany synap görüň we şahadatnamanyň gowy ýüklenýändigine göz ýetiriň we brauzer\Baglanyşygyň ygtybarlydygyny görkezýär!

Bu hemmesi! Bu gollanma size HAProxy ýük balanser programma üpjünçiliginde SSL şahadatnamasyny düzmäge kömek etdi diýip umyt edýäris. Haýsydyr bir ýalňyşlyk bilen ýüzbe-ýüz bolsaňyz, aşakdaky seslenme formasy arkaly bize habar beriň. Size kömek etmäge şat bolarys.