Difference between revisions of "PfSense + letsencrypt + haproxy"
(→acme client på pfSense 2.3) |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | = acme client= | + | = acme client på pfSense 2.3= |
Installationen er lavet på en pfsense 2.3.2p1 | Installationen er lavet på en pfsense 2.3.2p1 | ||
− | <strike>Skrevet 2016-12-30 - justeringer kan være nødvendige iht ændringer i github fork'en osv.</strike> | + | * <strike>Skrevet 2016-12-30 - justeringer kan være nødvendige iht ændringer i github fork'en osv.</strike> |
− | Opdateret 2017-01-24 - pfSense-pkg-acme PR er blevet merget ind i pfSense | + | * <strike>Opdateret 2017-01-24 - pfSense-pkg-acme PR er blevet merget ind i pfSense</strike> |
+ | * Opdateret 2017-02-04 - acme er nu også backportet til 2.3 så denne sektion er ikke længere nødvendig | ||
Acme er protokollen bag letsencrypt, så der skal installeres noget software til at styre denne. Den er trukket ind som en pakke der kommer med i pfSense 2.4. Nedenfor vises hvordan den bygges til 2.3 | Acme er protokollen bag letsencrypt, så der skal installeres noget software til at styre denne. Den er trukket ind som en pakke der kommer med i pfSense 2.4. Nedenfor vises hvordan den bygges til 2.3 |
Latest revision as of 20:45, 4 February 2017
Contents
acme client på pfSense 2.3
Installationen er lavet på en pfsense 2.3.2p1
Skrevet 2016-12-30 - justeringer kan være nødvendige iht ændringer i github fork'en osv.Opdateret 2017-01-24 - pfSense-pkg-acme PR er blevet merget ind i pfSense- Opdateret 2017-02-04 - acme er nu også backportet til 2.3 så denne sektion er ikke længere nødvendig
Acme er protokollen bag letsencrypt, så der skal installeres noget software til at styre denne. Den er trukket ind som en pakke der kommer med i pfSense 2.4. Nedenfor vises hvordan den bygges til 2.3
- Lav en freebsd 10.3vm
- pkg install git
- git clone https://github.com/pfsense/FreeBSD-ports.git
- cd FreeBSD-ports/security/pfSense-pkg-acme/
- vim ./files/usr/local/pkg/acme/acme.inc
- gå til linie 516
- efter linien
$directory = $domain_info['webrootfolder'];
tilføjes disse 2 linier
if ( isset($directory)==false || $directory == "") $directory = "/usr/local/www/.well-known/acme-challenge/";
- byg pakken med
make package
- kopier work/pkg/pfSense-pkg-acme-0.1.txz over på pfSense
- installer med
pkg install pfSense-pkg-acme-0.1.txz
acme validering + haproxy
letsencrypt/acme kan validere domain på flere måder (http/ftp/dns mm) og pfsense/acme indeholder metoder til dem alle(+ en håndfuld integrationer til dns validering), dog vil jeg mene at http valideringen er den enkleste.
- Installer haproxy pakken på pfSense hvis den ikke allerede er der
- tilføj en backend der peger på pfsense management interfacet
- på port 80 frontend'en
- tilføj en ACL:
- Name: acme
- Expression: Path starts with
- Value: /.well-known
- Tilføj en regel der knytter acme ACL'en sammen med pfsense backend'en
- tilføj en ACL:
- gem + reload osv.
Der er nu klar til at få lavet letsencrypt certs med http validering:
acme certificater
pfSense -> services -> Acme Certificates
Tilføj nye certs til de domæner der skal bruges. Ved method på de enkelte domæner husk at bruge webroot local folder. Når du har gemt kan du på acme certificates siden vælge "Issue/renew". Hele seancen skulle helt ende med at de nye certifikat bliver importeret ind til pfsense
haproxy ssl offload
- tilføj en ny frontend
- sæt den til at lytte på port 443 og sæt flueben ved ssl offload
- sæt selv om med ACL og actions om nædvendigt
- sæt flueben ved "use forwardfor option" (Note: pfsense/haproxy tilføjer også selv en X-Forwarded-Proto header)
- Under SSL offloading
- Vælg dit primære certificate (sæt flueben ved begge "add ACL")
- Tilføj øvrige "additional cerificates" (sæt flueben ved begge "add ACL")
- Under advanced ssl options tilføje disse parametre:
no-sslv3 ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
- Tilføj evt. denne under "Advanced pass thru" for at slå HSTS til:
rspadd Strict-Transport-Security:\ max-age=15768000