it-swarm.com.de

haproxy - Der private SSL-Schlüssel kann nicht aus der PEM-Datei geladen werden

haproxy startet nicht mehr, es wird der Fehler angezeigt

bind <ip>:443' : unable to load SSL private key from PEM file ...

Wir haben an den Zertifikaten oder der Konfiguration nichts geändert. Seit dem letzten Start haben wir nur normale Updates am System vorgenommen.

Um den Fehler zu finden, habe ich ein komplett neues Zertifikat (selbstsigniert) generiert, der Fehler ist jedoch noch vorhanden.

Dies ist die Struktur der PEM-Datei:

-----BEGIN CERTIFICATE-----
MIIDXjCCAkY...
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIIEpgIBAAKC....
-----END RSA PRIVATE KEY-----

Ich habe auch versucht, den privaten Schlüssel mit zu konvertieren

openssl pkcs8 -topk8 -inform pem -in server.key -outform pem -nocrypt -out server_new.key

aber haproxy zeigt immer noch den gleichen Fehler.

Ich versuche es seit Stunden, aber ich kann den Grund nicht finden. Bitte helfen Vielen Dank!

Aktualisieren:

Das Problem hat etwas mit dem Dateizugriff zu tun. Die PEM-Datei wurde unter /data/ssl/domainname/domainname.pem gespeichert. Dateirechte sind in Ordnung. Wenn ich die PEM-Datei nach/etc/haproxy verschiebe, ist alles in Ordnung.

26
efdev1234

Das Problem, dem ich bei CentOS begegnete, war, dass SELinux im Weg stand. Um zu testen, ob SELinux das Problem ist, führen Sie Folgendes als root aus: setenforce 0. Versuchen Sie dann, das haproxy neu zu starten. Wenn es funktioniert, liegt ein SELinux-Problem vor. (Sie können SELinux jetzt wieder aktivieren und versuchen, das zugrunde liegende Problem mit dem Befehl setenforce 1 zu beheben). 

Da ich die Zertifikate im Ordner/etc/haproxy/certification habe, funktionierte der folgende Befehl, um die richtigen Berechtigungen für die Dateien restorecon -v -R /etc/haproxy zu erhalten (je nach Betriebssystem und SELinux-Konfiguration kann dies möglicherweise nicht funktionieren). 

12
Tim Ludwinski

Die Reihenfolge, in der die Zertifikats- und Schlüsseldateien im Pem erscheinen, ist wichtig. Gehen Sie folgendermaßen vor, um die Pem-Datei zu erstellen.

cat example.com.crt example.com.key > example.com.pem
26
Justin Hourigan

Ich bin auch auf diesen Fehler gestoßen. Möglicherweise möchten Sie versuchen, die Passphrase aus dem privaten Schlüssel zu entfernen, bevor Sie Ihr Haar ausreißen. Es hat das Problem für mich gelöst. Ich denke, dass HAProxy Sie beim Neustart nach dem Passwort fragen sollte, aber in meinem Fall wurde 'Sudo /etc/init.d/haproxy restart' nicht verwendet

Versuchen Sie zum Entfernen des Kennworts 'Openssl rsa -in [PRIVATE_KEY_FILE] -out nopassphrase.key'

Ist eine Passphrase notwendig? Es gibt eine Diskussion unter dem folgenden Link . https://security.stackexchange.com/questions/70495/ssl-certificate-is-passphrase-necessary-und-wie-does-Apache-know-it

4
brunettdan

Für mich wurde das Problem durch diese Zeile in kombinierter PEM-Datei verursacht:

----- ENDE-ZERTIFIKAT ---------- BEGIN RSA PRIVATE KEY -----

Nachdem ich es geteilt habe, konnte ich HaProxy starten und es in Ordnung laden:

* ----- ENDE ZERTIFIKAT -----

----- BEGIN RSA PRIVATE KEY ----- *

Ich hoffe es hilft

T

2
TBONE

Das Problem für mich war ein merkwürdiger Charakter am Anfang des Schlüssels.

Dieses Zeichen wurde nicht angezeigt, als ich die Datei cated, weil das Zeichen <feff> war, auch bekannt als UTF-8 BOM (Byte Order Mark) . Es wurde nur angezeigt, als ich die Datei in vim öffnete.

Ich würde nicht erwarten, dass dies sehr verbreitet ist, aber hoffentlich erspart es jemandem Kopfschmerzen.

0
Peter Klipfel

Nur zur Information hatte ich in meinem Fall ein Leerzeichen vor der Sequenz "----- BEGIN RSA PRIVATE KEY -----", und die Pem-Datei wurde beschädigt.

0