HAProxy-യിൽ ഒരു CA SSL സർട്ടിഫിക്കറ്റ് എങ്ങനെ കോൺഫിഗർ ചെയ്യാം


HAProxy, TCP, HTTP ആപ്ലിക്കേഷനുകൾക്കായി ഉയർന്ന ലഭ്യതയും ലോഡ് ബാലൻസിങ് കഴിവുകളും വാഗ്ദാനം ചെയ്യുന്ന, വ്യാപകമായി ഉപയോഗിക്കപ്പെടുന്ന, വിശ്വസനീയമായ, ഉയർന്ന പ്രകടനമുള്ള റിവേഴ്സ് പ്രോക്സിയാണ്. സ്ഥിരസ്ഥിതിയായി, ഇത് OpenSSL-ൽ സമാഹരിച്ചിരിക്കുന്നു, അങ്ങനെ SSL അവസാനിപ്പിക്കലിനെ പിന്തുണയ്ക്കുന്നു, നിങ്ങളുടെ \വെബ് എൻട്രി സെർവർ അല്ലെങ്കിൽ ആപ്ലിക്കേഷൻ ആക്സസ് ഗേറ്റ്വേ സെർവർ, ക്ലയന്റ് ആപ്ലിക്കേഷനുകൾ എന്നിവയ്ക്കിടയിലുള്ള ട്രാഫിക് എൻക്രിപ്റ്റ് ചെയ്യാനും ഡീക്രിപ്റ്റ് ചെയ്യാനും നിങ്ങളുടെ വെബ്സൈറ്റ്/അപ്ലിക്കേഷൻ സ്റ്റാക്ക് പ്രാപ്തമാക്കുന്നു.

HAPorxy-യിൽ ഒരു CA SSL സർട്ടിഫിക്കറ്റ് എങ്ങനെ കോൺഫിഗർ ചെയ്യാമെന്ന് ഈ ഗൈഡ് കാണിക്കുന്നു. CA-യിൽ നിന്ന് നിങ്ങളുടെ സർട്ടിഫിക്കറ്റ് നിങ്ങൾക്ക് ഇതിനകം ലഭിച്ചിട്ടുണ്ടെന്നും അത് ഒരു HAProxy സെർവറിൽ ഇൻസ്റ്റാൾ ചെയ്യാനും കോൺഫിഗർ ചെയ്യാനും തയ്യാറാണെന്നും ഈ ഗൈഡ് അനുമാനിക്കുന്നു.

പ്രതീക്ഷിക്കുന്ന ഫയലുകൾ ഇവയാണ്:

  • സർട്ടിഫിക്കറ്റ് തന്നെ.
  • ഇന്റർമീഡിയറ്റ് സർട്ടിഫിക്കറ്റുകളെ ബണ്ടിലുകൾ അല്ലെങ്കിൽ ചെയിൻ എന്നും വിളിക്കുന്നു, കൂടാതെ.
  • ലഭ്യമെങ്കിൽ റൂട്ട് CA, ഒപ്പം.
  • സ്വകാര്യ കീ.

PEM ഫോർമാറ്റ് ചെയ്ത ഒരു SSL സർട്ടിഫിക്കറ്റ് ഫയൽ സൃഷ്ടിക്കുക

നിങ്ങളുടെ CA സർട്ടിഫിക്കറ്റ് HAProxy-യിൽ കോൺഫിഗർ ചെയ്യുന്നതിന് മുമ്പ്, HAProxy ക്ക് ഒരു .pem ഫയൽ ആവശ്യമാണെന്ന് നിങ്ങൾ മനസ്സിലാക്കേണ്ടതുണ്ട്, അതിൽ ഇനിപ്പറയുന്ന ക്രമത്തിൽ സംയോജിപ്പിച്ചിരിക്കുന്ന മുകളിലുള്ള എല്ലാ ഫയലുകളുടെയും ഉള്ളടക്കം അടങ്ങിയിരിക്കണം:

  • .key എന്നതിൽ അവസാനിക്കുന്ന സ്വകാര്യ കീ, (ഫയലിന്റെ തുടക്കത്തിലോ അവസാനത്തിലോ വരാം).
  • എസ്എസ്എൽ സർട്ടിഫിക്കറ്റ് പിന്തുടരുന്നു (സാധാരണയായി .crt എന്നതിൽ അവസാനിക്കും).
  • അപ്പോൾ CA-ബണ്ടിൽ (സാധാരണയായി .ca-bundle എന്നതിൽ അവസാനിക്കും), കൂടാതെ
  • ലഭ്യമെങ്കിൽ റൂട്ട് CA.

.pem ഫയൽ സൃഷ്uടിക്കുന്നതിന്, നിങ്ങളുടെ സർട്ടിഫിക്കറ്റ് ഫയലുകളുള്ള ഡയറക്uടറിയിലേക്ക് നീങ്ങുക ഉദാ. ~/ഡൗൺലോഡുകൾ, തുടർന്ന് ഇതുപോലെ cat കമാൻഡ് പ്രവർത്തിപ്പിക്കുക (ഫയൽ പേരുകൾ അതനുസരിച്ച് മാറ്റിസ്ഥാപിക്കുക):

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

HAProxy-യിൽ PEM SSL സർട്ടിഫിക്കറ്റ് കോൺഫിഗർ ചെയ്യുക

അടുത്തതായി, കാണിച്ചിരിക്കുന്നതുപോലെ scp കമാൻഡ് ഉപയോഗിച്ച് HAProxy സെർവറിലേക്ക് ഇപ്പോൾ സൃഷ്ടിച്ച .pem സർട്ടിഫിക്കറ്റ് ഫയൽ അപ്uലോഡ് ചെയ്യുക (യഥാക്രമം sysadmin, 192.168.10.24 എന്നിവ റിമോട്ട് സെർവർ ഉപയോക്തൃനാമവും IP വിലാസവും ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക):

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

തുടർന്ന് mkdir കമാൻഡ് ഉപയോഗിച്ച് സർട്ടിഫിക്കറ്റ് .pem ഫയൽ സംഭരിക്കുന്ന ഒരു ഡയറക്ടറി സൃഷ്uടിക്കുകയും അതിലേക്ക് ഫയൽ പകർത്തുകയും ചെയ്യുക:

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

അടുത്തതായി, നിങ്ങളുടെ HAProxy കോൺഫിഗറേഷൻ ഫയൽ തുറന്ന് ssl, crt പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് ഫ്രണ്ട്uഎൻഡ് ലിസണർ വിഭാഗത്തിന് കീഴിൽ സർട്ടിഫിക്കറ്റ് കോൺഫിഗർ ചെയ്യുക: ആദ്യത്തേത് SSL അവസാനിപ്പിക്കൽ പ്രവർത്തനക്ഷമമാക്കുന്നു, രണ്ടാമത്തേത് സർട്ടിഫിക്കറ്റ് ഫയലിന്റെ സ്ഥാനം വ്യക്തമാക്കുന്നു.

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-ന്റെ ചില പതിപ്പുകൾ അവയിൽ കണ്ടെത്തിയിട്ടുള്ള കേടുപാടുകൾ കാരണം ഇപ്പോൾ ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നില്ല. SSL-ന്റെ പിന്തുണയുള്ള പതിപ്പ് പരിമിതപ്പെടുത്തുന്നതിന്, നിങ്ങൾക്ക് ഇതുപോലെ ssl-min-ver പാരാമീറ്റർ ചേർക്കാം:

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

HTTP-ലേക്ക് HTTPS-ലേക്ക് റീഡയറക്uട് ചെയ്യാൻ HAProxy കോൺഫിഗർ ചെയ്യുക

നിങ്ങളുടെ വെബ്uസൈറ്റ് HTTPS വഴി മാത്രമേ ആക്uസസ് ചെയ്യാനാകൂ എന്ന് ഉറപ്പാക്കാൻ, ഒരു ഉപയോക്താവ് HTTP (പോർട്ട് 80) വഴി ആക്uസസ് ചെയ്യാൻ ശ്രമിച്ചാൽ എല്ലാ HTTP ട്രാഫിക്കും HTTPS-ലേക്ക് റീഡയറക്uട് ചെയ്യുന്നതിന് നിങ്ങൾ HAProxy പ്രവർത്തനക്ഷമമാക്കേണ്ടതുണ്ട്.

മുകളിലുള്ള കോൺഫിഗറേഷനിലേക്ക് ഇനിപ്പറയുന്ന വരി ചേർക്കുക:

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

നിങ്ങളുടെ മുൻഭാഗം ഇപ്പോൾ ഈ സാമ്പിൾ കോൺഫിഗറേഷനിലുള്ളത് പോലെയായിരിക്കണം:

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

കോൺഫിഗറേഷൻ ഫയൽ സംരക്ഷിച്ച് അത് അടയ്ക്കുക.

ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് അതിന്റെ വാക്യഘടന ശരിയാണോ എന്ന് പരിശോധിക്കുക:

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

കോൺഫിഗറേഷൻ ഫയൽ സാധുതയുള്ളതാണെങ്കിൽ, systemctl കമാൻഡ് ഉപയോഗിച്ച് കോൺഫിഗറേഷനിലെ സമീപകാല മാറ്റങ്ങൾ എടുക്കുന്നതിന് ഹാപ്രോക്സി സേവനം വീണ്ടും ലോഡുചെയ്യുക:

$ sudo systemctl reload haproxy

അവസാനമായി പക്ഷേ, ഒരു വെബ് ബ്രൗസറിൽ നിന്ന് നിങ്ങളുടെ വെബ്uസൈറ്റ് ആക്uസസ് ചെയ്uത് മുഴുവൻ സജ്ജീകരണവും പരിശോധിച്ച് സർട്ടിഫിക്കറ്റ് നന്നായി ലോഡ് ചെയ്യുന്നുണ്ടെന്നും ബ്രൗസർ \കണക്ഷൻ സുരക്ഷിതമാണ് എന്ന് സൂചിപ്പിക്കുന്നുവെന്നും ഉറപ്പാക്കുക!

അത്രയേയുള്ളൂ! HAProxy ലോഡ് ബാലൻസർ സോഫ്റ്റ്uവെയറിൽ ഒരു SSL സർട്ടിഫിക്കറ്റ് കോൺഫിഗർ ചെയ്യാൻ ഈ ഗൈഡ് നിങ്ങളെ സഹായിച്ചിട്ടുണ്ടെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു. നിങ്ങൾക്ക് എന്തെങ്കിലും പിശകുകൾ നേരിടുകയാണെങ്കിൽ, ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം വഴി ഞങ്ങളെ അറിയിക്കുക. നിങ്ങളെ സഹായിക്കുന്നതിൽ ഞങ്ങൾക്ക് സന്തോഷമുണ്ട്.