Hallo in die Runde,
offenbar gibt es in openSuSE Leap 15.1 (zumindest dort) einen kleinen Bug, der verhindert, dass das Programm startet, wenn man eine SSL Konfiguration anlegt. Beim Testen kam bei mir folgende Fehlermeldung:

lb01:/usr/src # haproxy -f /etc/haproxy/haproxy.cfg -c
[ALERT] 250/122406 (2374) : parsing [/etc/haproxy/haproxy.cfg:44] : 'bind 0.0.0.0:443' : unable to load SSL private key from PEM file '/etc/ssl/private/mydomain.pem'.
[ALERT] 250/122406 (2374) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] 250/122406 (2374) : Fatal errors found in configuration.
lb01:/usr/src #


Es hat mich jetzt ein paar Stunden gekostet, was das eigentliche Problem ist, weil auch die Fehlermeldung von HAproxy mal echt sch... ist.
Der Grund ist, dass HAproxy das Zertifikat aufgrund fehlender Rechte in AppArmor nicht lesen kann. Unglücklicherweise sieht die Fehlermeldung in HAproxy anders aus, wenn das Zertifikat aufgrund von OS Rechten nicht gelesen werden kann bzw. gar nicht vorhanden ist. Aber wenn man sich die Konfig in AppArmor für HAproxy ansieht, dann wird klar, dass das nicht funzen kann:

lb01:/etc/apparmor.d # cat usr.sbin.haproxy
#include <tunables/global>

/usr/sbin/haproxy {
#include <abstractions/base>
#include <abstractions/nameservice>
capability net_bind_service,
capability setgid,
capability setuid,
capability kill,
capability sys_resource,
capability sys_chroot,

# those are needed for the stats socket creation
capability chown,
capability fowner,
capability fsetid,

network inet tcp,
network inet6 tcp,

/etc/haproxy/* r,

/usr/sbin/haproxy rmix,

/var/lib/haproxy/stats rwl,
/var/lib/haproxy/stats.*.bak rwl,
/var/lib/haproxy/stats.*.tmp rwl,
/{,var/}run/haproxy.pid rw,

# Site-specific additions and overrides. See local/README for details.
#include <local/usr.sbin.haproxy>
}
lb01:/etc/apparmor.d #


Je nachdem, wo man die Zertifikate speichert, muss der Pfad mit drinstehen. Im Standard sollte man Zertifikate in /etc/ssl/private speichern, zumindest dieser Pfad sollte also oben mit drinstehen. Ich hab' den Pfad jetzt in der lokalen Konfigdatei nachgeholt, AppArmor neu gestartet und siehe da - jetzt geht's :-). Die lokale Datei sieht so aus:

lb01:/etc/apparmor.d/local # cat usr.sbin.haproxy
# Site-specific additions and overrides for usr.sbin.haproxy.apparmor
/etc/ssl/private/* r,
lb01:/etc/apparmor.d/local #



So, vielleicht habe ich dem einen oder anderen ja etwas Aufwand gespart.... in diesem Sinne - sauber bleiben!