Követelmények
Tanúsítvány és privát kulcs létrehozása
A HAProxy beállítása
Ez a cikk végigvezeti az SSL-lezárás beállításán a HAProxy-n a forgalom HTTPS-en keresztüli titkosításához. Önaláírt SSL-tanúsítványt fogunk használni az új kezelőfelülethez. Feltételezzük, hogy már telepítve van a HAProxy, és be van állítva egy szabványos HTTP frontend.
Követelmények
- Vultr VPS
- HAProxy 1.5
- Ubuntu 14.04 LTS (Más verziókon és disztribúciókon kell működnie)
Tanúsítvány és privát kulcs létrehozása
Futtassa a következő kódsorokat egy privát kulcs és egy önaláírt tanúsítvány létrehozásához, amely együttműködik a HAProxyval.
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
Az első dolog, amit meg kell tennie, az az, hogy győződjön meg arról, hogy az SSLv3 le van tiltva. A POODLE támadás miatt az SSLv3 már nem tekinthető biztonságosnak. Minden alkalmazásnak és szervernek TLS 1.0 vagy újabb verziót kell használnia. Kedvenc szövegszerkesztőjével nyissa meg a fájlt /etc/haproxy/haproxy.cfg. Belül keresse meg a szakasz ssl-default-bind-options no-sslv3alatti vonalat global. Ha nem látja, adja hozzá ezt a sort a szakasz végéhez a szakasz előtt defaults. Ez biztosítja, hogy az SSLv3 globálisan le legyen tiltva. A frontend szakaszokon belül is beállíthatja, de javasolt globálisan letiltani.
A HTTPS beállításához. Hozzon létre egy új frontend szakaszt néven 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
Megmagyarázni:
bind public_ip:443(módosítás public_ipa VPS nyilvános IP-címére) utasítja a HAProxy-t, hogy figyeljen a porton 443(a HTTPS-porton) lévő IP-címre küldött kérésekre .
ssl crt /etc/ssl/certs/server.bundle.pem utasítja a HAProxy-t, hogy használja a korábban generált SSL-tanúsítványt.
reqadd X-Forwarded-Proto:\ https hozzáadja a HTTPS fejlécet a bejövő kérés végéhez.
rspadd Strict-Transport-Security:\ max-age=31536000 biztonsági politika a leminősítési támadások megelőzésére.
Nincs szükség további módosításokra a háttérszakaszban.
Ha azt szeretné, hogy a HAProxy alapértelmezetten HTTPS-t használjon, adja hozzá redirect scheme https if !{ ssl_fc }a www-backendszakasz elejéhez . Ez kényszeríti a HTTPS átirányítást.
Mentse el a konfigurációt, és futtassa service haproxy restarta HAPRoxy újraindításához. Most már készen áll a HAProxy használatára egy SSL-végponttal.