haproxy - crear - instalar certificado.cer en linux
haproxy-no se puede cargar la clave privada SSL desde el archivo PEM (6)
El orden en el que aparecen los archivos cert y key en el pem es importante. Usa lo siguiente para crear el archivo pem.
cat example.com.crt example.com.key > example.com.pem
haproxy no se inicia más, muestra el error
bind <ip>:443'' : unable to load SSL private key from PEM file ...
No cambiamos nada en los certificados o configuración. Desde el último inicio solo realizamos actualizaciones normales al sistema.
Para encontrar el error, generé un certificado completamente nuevo (autofirmado) pero el error aún existe.
Esta es la estructura del archivo PEM:
-----BEGIN CERTIFICATE-----
MIIDXjCCAkY...
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIIEpgIBAAKC....
-----END RSA PRIVATE KEY-----
También traté de convertir la clave privada con
openssl pkcs8 -topk8 -inform pem -in server.key -outform pem -nocrypt -out server_new.key
pero haproxy sigue mostrando el mismo error.
Estoy intentando por horas ahora pero no puedo encontrar la razón. ¡Por favor ayuda! ¡Gracias!
Actualizar:
El problema tiene algo que ver con el acceso a archivos. El archivo PEM se almacenó en /data/ssl/domainname/domainname.pem. Los derechos de archivo están bien. Cuando muevo el archivo PEM a / etc / haproxy, entonces todo está bien.
El problema para mí era un personaje extraño al principio de la clave.
Este carácter no se mostró cuando <feff>
el archivo porque el carácter era <feff>
también conocido como UTF-8 BOM (marca de orden de bytes) . Sólo apareció cuando abrí el archivo en vim.
No esperaría que esto fuera muy común, pero espero que le ahorre a alguien un poco de dolor de cabeza.
El problema que estaba encontrando en CentOS era que SELinux se estaba interponiendo. Para probar si SELinux es el problema, ejecute lo siguiente como root: setenforce 0
, luego intente reiniciar el haproxy. Si funciona, hay un problema con SELinux. (Puede volver a habilitar SELinux ahora e intentar solucionar el problema subyacente con el comando setenforce 1
).
Ya que tengo los certificados en la carpeta / etc / haproxy / certificate, el siguiente comando funcionó para obtener los permisos correctos en la restorecon -v -R /etc/haproxy
archivos restorecon -v -R /etc/haproxy
(dependiendo de su sistema operativo y la configuración de SELinux, esto puede o no funcionar ).
Para mí, el problema fue causado por esta línea en un archivo PEM combinado:
----- FINALIZA EL CERTIFICADO ---------- COMIENZA LA CLAVE RSA PRIVADA -----
Después de dividirlo, pude iniciar HaProxy y cargarlo OK:
* ----- CERTIFICADO FINAL -----
----- COMIENCE LA CLAVE RSA PRIVADA ----- *
Espero eso ayude
T
Solo para información, en mi caso tenía un carácter de espacio delante de la secuencia "----- BEGIN RSA PRIVATE KEY -----" y eso rompió el archivo pem.
También me encontré con este error. Es posible que desee intentar eliminar la contraseña de la clave privada antes de comenzar a arrancarle el cabello. Me solucionó el problema. Creo que HAProxy debe pedirle la contraseña para reiniciar, pero en mi caso no lo hizo usando ''sudo /etc/init.d/haproxy restart
Para eliminar la contraseña, intente ''openssl rsa -in [PRIVATE_KEY_FILE] -out nopassphrase.key''
¿Es necesaria la frase de contraseña? Hay una discusión en el enlace de abajo. https://security.stackexchange.com/questions/70495/ssl-certificate-is-passphrase-necessary-and-how-does-apache-know-it