Zahtjevi
Generirajte certifikat i privatni ključ
Konfigurirajte HAProxy
Ovaj članak će vas provesti kroz postavljanje SSL terminacije na HAProxy, za šifriranje prometa putem HTTPS-a. Koristit ćemo samopotpisani SSL certifikat za novi frontend. Pretpostavlja se da već imate instaliran i konfiguriran HAProxy sa standardnim HTTP sučeljem.
Zahtjevi
- Vultr VPS
- HAProxy 1.5
- Ubuntu 14.04 LTS (treba raditi na drugim verzijama i distribuciji)
Generirajte certifikat i privatni ključ
Pokrenite sljedeće retke koda da generirate privatni ključ i samopotpisani certifikat koji će raditi s HAProxy.
openssl genrsa -out /etc/ssl/private/server.key 2048
mkdir /etc/ssl/csr
openssl req -new -key /etc/ssl/private/server.key -out /etc/ssl/csr/server.csr
openssl x509 -req -days 365 -in /etc/ssl/csr/server.csr -signkey /etc/ssl/private/server.key -out /etc/ssl/certs/server.crt
cat /etc/ssl/certs/server.crt /etc/ssl/private/server.key > /etc/ssl/certs/server.bundle.pem
Prva stvar koju trebate učiniti je osigurati da je SSLv3 onemogućen. Zbog napada POODLE, SSLv3 se više ne smatra sigurnim. Sve aplikacije i poslužitelji trebaju koristiti TLS 1.0 i noviji. Pomoću svog omiljenog uređivača teksta otvorite datoteku /etc/haproxy/haproxy.cfg. Unutra potražite crtu ssl-default-bind-options no-sslv3ispod globalodjeljka. Ako ga ne vidite, dodajte taj redak na kraj odjeljka prije defaultsodjeljka. To će osigurati da je SSLv3 globalno onemogućen. Također ga možete postaviti unutar svojih frontend odjeljaka, ali se preporučuje da ga onemogućite globalno.
Na postavku HTTPS-a. Stvorite novi frontend odjeljak pod nazivom web-https.
frontend web-https
bind public_ip:443 ssl crt /etc/ssl/certs/server.bundle.pem
reqadd X-Forwarded-Proto:\ https
rspadd Strict-Transport-Security:\ max-age=31536000
default_backend www-backend
Objasniti:
bind public_ip:443(promjena public_ipna vaš VPS javni IP) govori HAProxy-u da posluša svaki zahtjev koji je poslan na IP adresu na portu 443(HTTPS port).
ssl crt /etc/ssl/certs/server.bundle.pem govori HAProxy-u da koristi prethodno generirani SSL certifikat.
reqadd X-Forwarded-Proto:\ https dodaje HTTPS zaglavlje na kraj dolaznog zahtjeva.
rspadd Strict-Transport-Security:\ max-age=31536000 sigurnosna politika za sprječavanje napada na downgrade.
Ne morate unositi nikakve dodatne promjene u svoj pozadinski odjeljak.
Ako želite da HAProxy koristi HTTPS prema zadanim postavkama, dodajte redirect scheme https if !{ ssl_fc }na početak www-backendodjeljka. To će prisiliti HTTPS preusmjeravanje.
Spremite svoju konfiguraciju i pokrenite service haproxy restartkako biste ponovno pokrenuli HAPRoxy. Sada ste spremni za korištenje HAProxy sa SSL krajnjom točkom.