apache-2.2 – Apache: SSLCertificateKeyFile: el archivo no existe o está vacío

Pregunta:

Estoy configurando SSL para Apache 2 . Mi sistema es Ubuntu Server 10.04 LTS . Tengo las siguientes configuraciones relacionadas con SSL en mi configuración de vhost:

SSLEngine On
SSLCertificateKeyFile /etc/ssl/private/server.insecure.key
SSLCertificateFile    /etc/ssl/certs/portal.selfsigned.crt

(Nota al .insecure : estoy usando .insecure para el archivo de clave porque el archivo no está protegido por contraseña y me gusta ver claramente que es un archivo de clave inseguro)

Entonces, cuando reinicio Apache, aparece el siguiente mensaje:

Syntax error on line 39 of /etc/apache2/sites-enabled/500-portal-https:
SSLCertificateKeyFile: file '/etc/ssl/private/server.insecure.key' does not exist or is empty
Error in syntax. Not restarting.

Pero el archivo está ahí y no está vacío (en realidad contiene una clave privada):

sudo ls -l /etc/ssl/private/server.insecure.key
-rw-r----- 1 root www-data 887 2012-08-07 15:14 /etc/ssl/private/server.insecure.key
sudo ls -ld /etc/ssl/private/
drwx--x--- 2 root www-data 4096 2012-08-07 13:02 /etc/ssl/private/

Intenté cambiar la propiedad, usando dos grupos www-data y ssl-cert. No estoy seguro de cuál es el correcto en Ubuntu: de forma predeterminada, Ubuntu usa ssl-cert, pero por otro lado, los procesos de apache se ejecutan con el usuario www-data: lo inicia el usuario root, pero cambia a www-data en algunos punto, y no estoy seguro de cuándo se leen los certificados.

Pero de todos modos, cambiar el propietario del grupo no ha mejorado la situación. Mis preguntas son:

  1. ¿Qué más puedo intentar para que esto funcione?
  2. ¿Cómo puedo verificar que mi archivo de claves es un archivo de claves válido?
  3. ¿Cómo puedo verificar que el archivo de claves y el certificado ( /etc/ssl/certs/portal.selfsigned.crt ) funcionan juntos?

Creo que Apache está dando un mensaje de error engañoso y me gustaría señalar el error.

Respuesta:

Encontré el error. Fue porque estoy usando un script para configurar los certificados, y uno de los pasos que estoy realizando es apache2ctl configtest . El error venía de este comando, y no del reinicio de Apache, que era lo que me engañaba. Como estaba ejecutando el comando apache2ctl como usuario normal, no tenía acceso a los archivos de claves y, por lo tanto, al mensaje de error.

Facit: asegúrese de que todos sus comandos de apache se ejecuten con sudo, incluso los que solo están destinados a la verificación de sintaxis ( apache2ctl ), ya que también necesitan acceso a las claves.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım