HAProxy: HTTPS als Default

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

HTTPS everywhere lautet heute die Devise. Mit HAProxy lassen sich alle ungeschützten Verbindungen auf verschlüsselte umleiten.

Spätestens seit Let's Encrypt gibt es keine gute Ausrede mehr dafür, auf die TLS-Verschlüsselung von HTTP-Verbindungen zu verzichten. Wer viele Webservices betreibt, kann dazu auf HAProxy zurückgreifen, der es ermöglicht unterschiedliche Backends wie Apache, Nginx und andere zu kombinieren.

Sind die Webdienste schon länger in Betrieb, ist das Netz vermutlich voll mit Links auf den ungesicherten HTTP-Dienst. Die entsprechenden Anfragen lassen sich am einfachsten direkt am HAProxy auf das HTTPS-Gegenstück umleiten. Dazu genügt eine Zeile im Frontend des HAProxy-HTTP-Service:

  frontend http-in
        redirect scheme https code 301 if !{ ssl_fc }

Damit werden alle Anfragen auf das HTTPS-Frontend umgeleitet, das in etwa so aussehen kann:

  frontend https-in
        bind 1.2.3.4:443 ssl crt /etc/letsencrypt/live/supersecret.org/haproxy-cert.pem
        use_backend bk_specialsite if { hdr_end(host) -i specialsite.org }
        option forwardfor
        default_backend bk_ssl_default

Alternativ zu der hier festgelegten Datei "haproxy-cert.pem", die den TLS-Key und das Zertifikat enthält (siehe "Zertifikate von Let's Encrypt in Apache, Nginx und HAProxy"), lässt sich HAProxy auch mit einer Liste von Zertifikaten konfigurieren, die Host/Domainnamen und Zertifikate einander zuordnet ("crt-list").

20.04.2017

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2018