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 margen: estoy usando .insecure
el archivo de clave porque el archivo no está protegido con frase de contraseña, y me gusta ver claramente que es un archivo de clave inseguro)
Entonces, cuando reinicio apache me sale 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á allí 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/
He intentado cambiar la propiedad, utilizando 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 en algunos casos cambia a www-data 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:
- ¿Qué más podría intentar hacer que esto funcione?
- ¿Cómo puedo verificar que mi archivo de claves es un archivo de claves válido?
- ¿Cómo puedo verificar que el archivo de claves y el certificado (
/etc/ssl/certs/portal.selfsigned.crt
) funcionen juntos?
Creo que Apache está dando un mensaje de error engañoso, y me gustaría señalar el error.
fuente
service apache2 restart
lugar de**sudo** service apache2 restart
... nota parasudo make me a sandwich fool
Respuestas:
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 provenía de este comando, y no del reinicio de Apache, que era lo que me estaba engañando. 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.fuente
También recibo el mensaje
mientras
/path/to/file
existan y tengan los permisos correctos, solo porque SELinux está activado y este archivo no era accesible para el usuario de apache.Se parece a esto:
Para solucionar esto, ejecuto
sudo restorecon -Rv /etc/pki/tls/certs/
: reparará la propiedad SELinux para el archivo del problema.fuente
sudo: restorecon: command not found
restorecon
es parte delpolicycoreutils
paquete. ¿También quizás no tengas SELinux?He hecho esto y me ayudó en CentOS 5.7
fuente
Recibí un mensaje similar:
SSLCertificateChainFile: file '/opt/bitnami/apache2/conf/DigiCertCA.crt\xe2\x80\x9d' does not exist or is empty
Mi problema era que el editor de texto que estaba usando colocaba una "comilla correcta" ascii 148 en lugar de una comilla doble normal ascii 34; utilizando un editor de tipo unix (por ejemplo, TextWrangler), ponga la cita correcta y solucionó el problema.
fuente
Los permisos son incorrectos, pero según su respuesta no fue la causa del problema:
drwx--x--- 2 root www-data 4096 2012-08-07 13:02 /etc/ssl/private/
/ etc / ssl / private generalmente pertenece al grupo ssl-cert en sistemas basados en debian.
Acabo de notar las permanentes 0710 y me pregunto para qué se puede usar.
fuente