Requisits
Generar certificat i clau privada
Configura HAProxy
Aquest article us guiarà a través de la configuració de la terminació SSL a HAProxy, per xifrar el trànsit mitjançant HTTPS. Utilitzarem un certificat SSL autofirmat per a la nova interfície. Se suposa que ja teniu instal·lat i configurat HAProxy amb una interfície HTTP estàndard.
Requisits
- Vultr VPS
- HAProxy 1.5
- Ubuntu 14.04 LTS (hauria de funcionar en altres versions i distribució)
Generar certificat i clau privada
Executeu les següents línies de codi per generar una clau privada i un certificat autofirmat que funcionarà amb 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
El primer que hauríeu de fer és assegurar-vos que SSLv3 estigui desactivat. A causa de l'atac POODLE, SSLv3 ja no es considera segur. Totes les aplicacions i servidors haurien d'utilitzar TLS 1.0 o superior. Amb el vostre editor de text preferit, obriu el fitxer /etc/haproxy/haproxy.cfg. A dins, busqueu la línia ssl-default-bind-options no-sslv3sota la globalsecció. Si no el veieu, afegiu aquesta línia al final de la secció abans de la defaultssecció. Això garantirà que SSLv3 estigui desactivat globalment. També podeu configurar-lo dins de les vostres seccions d'interfície, però es recomana desactivar-lo globalment.
A la configuració HTTPS. Creeu una nova secció d'interfície anomenada 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
Per explicar:
bind public_ip:443(canviar public_ipa la vostra IP pública VPS) diu a HAProxy que escolti qualsevol sol·licitud que s'enviï a l'adreça IP del port 443(el port HTTPS).
ssl crt /etc/ssl/certs/server.bundle.pem diu a HAProxy que utilitzi el certificat SSL generat anteriorment.
reqadd X-Forwarded-Proto:\ https afegeix la capçalera HTTPS al final de la sol·licitud entrant.
rspadd Strict-Transport-Security:\ max-age=31536000 una política de seguretat per prevenir els atacs de degradació.
No cal que feu cap canvi addicional a la vostra secció de fons.
Si voleu que HAProxy utilitzi HTTPS de manera predeterminada, afegiu redirect scheme https if !{ ssl_fc }-lo al començament de la www-backendsecció. Això forçarà la redirecció HTTPS.
Deseu la vostra configuració i executeu-lo service haproxy restartper reiniciar HAPRoxy. Ara ja esteu preparat per utilitzar HAProxy amb un punt final SSL.