Jeg har fået lidt tid til at lege med Letsencrypt og haproxy.
Letsencrypt er en projekt som gør det mulight at få "gratis" ssl certificater, dog kun med 90 dages løbetid pt, senere i projektet vil dette blive ændret til kortere tid efter hvad jeg kan læse på https://letsencrypt.org/

Foran mine web services har jeg en Haproxy kørrende, da denne kan splittet http / tcp trafik og derved er ligeglad med om en M$ service overholder http standard.

Dette betyder også at det er her mine offentlige ssl certificater termineres og det vil være her jeg skal have letsencrypt til at fungere.

Jeg vil gøre nytte af at ./letsencrypt-auto faktisk kan starte sin "egen" webserver til at gennemføre den authentikering som er nødvendig for at certificatet kan udstedes.

Denne authentikering køre over port 80 som udgangspunkt, hvor jeg har andre webserver kørrende, derfor kan jeg benytte " path_beg" funktionen i Haproxy til at fange url forspørgselser imode "/.well-known/acme-challenge/" og sikre at dette sendes videre til letencrypts egen webserver, som kun køre i forbindelse med oprettelse/fornyelse af certificater på den port der defines via "--http-01-port" parameteren af ./letsencrypt-auto scriptet.

De færdige certifivater vil være at finde under  /etc/letsencrypt/live og det PEM certificat som Haproxy skal bruge dannes via cat fullchain.pem privkey.pem > gw.mxbox.dk.pem og kopier gw.mxbox.dk.pem til /etc/ssl/private/

vi /etc/haproxy/haproxy.cfg

frontend ft_http-in bind *:80
mode http
option httplog

acl letsencrypt_check path_beg /.well-known/acme-challenge/
use_backend letsencrypt_backend if letsencrypt_check

backend letsencrypt_backend
mode http
log global
server letsencript-standalone 127.0.0.1:1080


vi /etc/letsencrypt/cli.ini

standalone-supported-challenges = http-01
authenticator = standalone
email = This email address is being protected from spambots. You need JavaScript enabled to view it.
rsa-key-size = 4096


./letsencrypt-auto certonly --renew-by-default --agree-tos  --http-01-port 1080 --domains gw.mxbox.dk

cd /etc/letsencrypt/live/gw.mxbox.dk

cat fullchain.pem privkey.pem > gw.mxbox.dk.pem

cp gw.mxbox.dk.pem /etc/ssl/private/

/etc/init.d/haproxy reload