2015-01-14 17 views
21

haproxy non si avvia più, mostra l'erroreHAProxy - in grado di caricare SSL chiave privata da file PEM

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

non abbiamo cambiato nulla sui certificati o configurazione. Dall'ultimo avvio abbiamo effettuato solo aggiornamenti normali al sistema.

Per trovare l'errore, ho generato un certificato completamente nuovo (autofirmato) ma l'errore esiste ancora.

Questa è la struttura del file PEM:

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

Ho anche cercato di convertire la chiave privata con

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

ma haproxy mostra ancora lo stesso errore.

Sto provando da ore ma non riesco a trovare il motivo. Per favore aiuto! Grazie!

Aggiornamento:

Il problema ha a che fare con l'accesso ai file. Il file PEM è stato memorizzato in /data/ssl/domainname/domainname.pem. I diritti di file sono ok. Quando sposto il file PEM in/etc/haproxy, tutto va bene.

risposta

7

Il problema che stavo incappando su CentOS era SELinux che stava intralciando. Per verificare se SELinux è il problema, eseguire quanto segue come root: setenforce 0, quindi provare a riavviare il haproxy. Se funziona, c'è un problema su SELinux. (È possibile riattivare SELinux ora e provare a risolvere il problema sottostante con il comando setenforce 1).

Dal momento che ho i certificati nella cartella/etc/HAProxy/certificati, il seguente comando lavorato per ottenere i permessi giusti sui file restorecon -v -R /etc/haproxy (a seconda del vostro sistema operativo e SELinux config questo può o non può funzionare).

18

L'ordine in cui i file di certificati e chiavi appaiono nel pem è importante. Utilizzare il comando seguente per creare il file pem.

cat example.com.crt example.com.key > example.com.pem 
+1

questo è l'ordine nel mio file PEM, come si può vedere nella mia domanda ... ma grazie – efdev1234

+1

Questa risposta risolto il mio problema. Grazie con lo stesso errore! Ho dimenticato di concatenare i file. – Eye

+0

Questo potrebbe essere cambiato perché ho funzionato con la chiave privata che precede il certificato pubblico nel file PEM. Avevo avuto lo stesso errore, ma nel mio caso era perché stavo eseguendo HAProxy in Docker, ma ho dimenticato di aggiungere un volume al contenitore in modo che HAProxy potesse vedere il PEM. – NickRamirez

0

Il problema per me era un personaggio strano, all'inizio della chiave.

Questo personaggio non si presentò quando ho cat Ed il file perché il personaggio è stato <feff> altrimenti noto come il UTF-8 BOM (Byte Order Mark). Si è presentato solo quando ho aperto il file in vim.

Non mi aspetterei che questo sia molto comune, ma si spera che risparmi un po 'di mal di testa.

4

Ho riscontrato anche questo errore. Potresti provare a rimuovere la passphrase dalla chiave privata prima di iniziare a strappare i capelli. Ha risolto il problema per me. Penso HAProxy si suppone che chiederà la password al riavvio, ma non fu così nel mio caso usando 'sudo /etc/init.d/haproxy riavviare

Per rimuovere la password, prova a ' openssl rsa -in [PRIVATE_KEY_FILE] -out nopassphrase.key '

È necessaria la passphrase? C'è una discussione nel link qui sotto. https://security.stackexchange.com/questions/70495/ssl-certificate-is-passphrase-necessary-and-how-does-apache-know-it

2

Per me il problema è stato causato da questa linea nel file PEM combinato:

----- END CERTIFICATE ---------- BEGIN chiave privata RSA ---- -

Dopo ho diviso che potrei cominciare HAProxy e caricarlo su OK:

* ----- END CERTIFICATE -----

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

Speranza che aiuta

T

Problemi correlati