haproxy-impossible de charger la clé privée SSL à partir du fichier PEM
haproxy ne démarre plus, il affiche l'erreur
bind <ip>:443' : unable to load SSL private key from PEM file ...
nous n'avons rien changé sur les certificats ou la configuration. Depuis le dernier démarrage, nous n'avons fait que des mises à jour normales du système.
Pour trouver l'erreur, j'ai généré un tout nouveau certificat auto-signé), mais l'erreur est toujours présente.
c'est la structure du fichier PEM:
-----BEGIN CERTIFICATE-----
MIIDXjCCAkY...
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIIEpgIBAAKC....
-----END RSA PRIVATE KEY-----
j'ai aussi essayé de convertir la clé privée avec
openssl pkcs8 -topk8 -inform pem -in server.key -outform pem -nocrypt -out server_new.key
mais haproxy affiche toujours la même erreur.
j'essaie depuis des heures mais je ne trouve pas la raison. S'il vous plaît aider! Je vous remercie!
mise à jour:
le problème a quelque chose à voir avec l'accès au fichier. Le fichier PEM a été stocké dans /data/ssl/domainname/domainname.pem. Les droits de fichier sont ok. Quand je déplace le fichier PEM vers /etc / haproxy, tout va bien.
6 réponses
le problème que je rencontrais sur CentOS était que SELinux se mettait en travers. Pour tester si SELinux est le problème exécutez ce qui suit en tant que root: setenforce 0
, puis essayez de redémarrer le haproxy. Si cela fonctionne, Il ya un problème SELinux. (Vous pouvez réactiver SELinux maintenant et essayer de corriger le problème sous-jacent avec la commande setenforce 1
).
puisque j'ai les certificats dans le dossier /etc/haproxy/certificats, la commande suivante a fonctionné pour obtenir le bon permissions sur les fichiers restorecon -v -R /etc/haproxy
(en fonction de votre config OS et SELinux cela peut ou non fonctionner).
l'ordre dans lequel les fichiers cert et key apparaissent dans le pem est important. Utilisez ce qui suit pour créer le fichier pem.
cat example.com.crt example.com.key > example.com.pem
j'ai aussi rencontré cette erreur. Vous pourriez vouloir essayer d'enlever la phrase de passe de la clé privée avant de commencer à arracher vos cheveux. Il a résolu le problème pour moi. Je pense que HAProxy est censé vous demander le mot de passe lors du redémarrage, mais il ne l'a pas fait dans mon cas en utilisant 'sudo /etc/init.d/haproxy redémarrer
pour supprimer le mot de passe, essayez "openssl rsa-in [PRIVATE_KEY_FILE] - out nopassphrase.la clé'
est-ce que passphrase est nécessaire? Il y a un discussion dans le lien ci-dessous. https://security.stackexchange.com/questions/70495/ssl-certificate-is-passphrase-necessary-and-how-does-apache-know-it
pour moi le problème a été causé par cette ligne dans le fichier combiné PEM:
-----CERTIFICAT DE FIN D'ÉTUDES----------COMMENCER RSA CLÉ PRIVÉE-----
après que je l'ai divisé je pourrais démarrer HaProxy et le charger OK:
*- - - - - END CERTIFICATE - - - - - -
- - - - - BEGIN RSA PRIVATE KEY - - - - - *
j'Espère que ça aide
T
le problème pour moi était un personnage étrange au début de la clé.
ce caractère ne s'est pas manifesté lorsque j'ai cat
ed le fichier parce que le caractère était <feff>
autrement connu sous le nom UTF-8 BOM (Byte Order Mark) . Il indiquait seulement quand j'ai ouvert le fichier dans vim.
Je ne m'attendrais pas à ce que ce soit très commun, mais j'espère que cela évite à quelqu'un un mal de tête.
juste pour information, dans mon cas j'avais un caractère d'espace devant la séquence" - - - - - BEGIN RSA PRIVATE KEY - - - - - " qui a cassé le fichier pem.