Apache ofrece un certificado SSL antiguo

Apache ofrece un certificado SSL antiguo

Estoy alojando una página web con Apache en una Raspberry Pi (Debian) y parece que no puedo lograr que el servidor emita el certificado actual. Generé un certificado SSL autofirmado /home/pi/ssl/con:

openssl req -new -sha256 -x509 -nodes -days 365 -out example.com.pem -keyout example.com.key

Apache busca el par de archivos .pemy en el archivo , que contiene:.key/etc/apache2/sites-enabled/owncloud.conf

SSLCertificateFile    /home/pi/ssl/example.com.pem
SSLCertificateKeyFile /home/pi/ssl/example.com.key

Cuando elimino estos archivos y reinicio Apache, aparece un error [FAIL] Reloading web server config: apache2 failed!. Este error no ocurre al reiniciar después de que se haya generado un nuevo par de archivos de certificado, por lo que parece que Apache está llamando al certificado.

Sin embargo, el certificado que aparece en los navegadores (Chrome Incognito o ventanas privadas FF/Safari, e incluso un navegador en una computadora que seguramente nunca antes solicitó el dominio) es un certificado antiguo que generé hace un mes; consulte a continuación:

detalles del certificado antiguo

¿Alguna idea de por qué sucede esto?

Respuesta1

Resulta que el certificado emitido era, por alguna razón, el certificado "snakeoil" predeterminado de Apache. Establecí esto por:

grep -i -r "SSLCertificateChainFile" /etc/apache2/

.. que devolvió 2 líneas del archivo /etc/apache2/sites-available/default-sslque hacía referencia al certificado de aceite de serpiente. Comenté estas líneas y el navegador ahora devuelve el certificado personalizado.

Respuesta2

Una fuente común de este tipo de problemas son las múltiples instancias en ejecución de Apache. Los cambios de configuración son recogidos por un proceso que usted (re)inicia, pero la solicitud es atendida por un proceso antiguo que se ejecuta con una configuración antigua.

Detener el servicio:

service apache2 stop

Compruebe si el sitio todavía es accesible. En caso afirmativo, entonces ha identificado la causa.

ahora corre

ps aux | grep apache

Le dará una lista de los procesos apache2 en ejecución y sus PID. Elimínelos a todos (tenga en cuenta que este comando también puede devolver procesos no relacionados con Apache en su nombre/usuario, etc., como Apache Tomcat, es posible que no desee eliminarlos).

kill <pid>

Ejecute ps aux nuevamente y asegúrese de que los procesos ya no se estén ejecutando.

Verifique nuevamente si el sitio es accesible. No debería ser así.

Ahora inicia el servicio apache

service apache2 start

Verifique que se esté entregando el nuevo certificado.

Si no desea finalizar procesos, puede reiniciar el sistema. Tendrá el mismo efecto.

información relacionada