Cómo instalar un certificado en http (CentOs)

Instalación del certificado SSL en httpd (CentOS)

Nota: Antes de empezar, asegúrate de tener listo tu certificado.

 

Pasos de instalación

1. Habilitar el soporte SSL/TLS en Apache (si ya tiene un SSL en uso significa que ya está habilitado)

Ahora tenemos que asegurarnos de que el soporte SSL/TLS esté habilitado en el servidor web. Para servir conexiones seguras, se utiliza el módulo «mod_ssl». Para comprobar si está instalado en el servidor, utilice el siguiente comando:

httpd -M | grep ssl

Si se instala este módulo, el servidor responderá de la siguiente manera:

Si el servidor no muestra ningún módulo SSL en la salida, será necesario instalar mod_ssl.

Utilice el administrador de paquetes «yum» para descargar y habilitar el componente necesario. Aquí está el comando simple para hacer esto:

sudo yum install mod_ssl

Confirma la instalación escribiendo «y» y pulsando la tecla «Enter».

Después de que el módulo se instale correctamente, si aún no hay SSL configurados en este servidor, el comando «httpd -S» puede responder con un mensaje de error con respecto al certificado SSL que falta:

El nuevo archivo de configuración SSL generado automáticamente está marcado con verde. Se generó durante la instalación del componente «mod_ssl».

La ubicación y el nombre predeterminados del archivo de configuración SSL es

/etc/httpd/conf.d/ssl.conf

Si el certificado SSL se instaló antes, verá la ruta del archivo de configuración utilizado actualmente cerca del nombre de dominio relevante en la salida httpd -S:

El archivo de configuración es el archivo en el que necesitamos proporcionar la ruta al certificado SSL, al archivo CA Bundle y a los archivos de clave privada.

Nota: Para estar seguro, puede guardar el archivo original como una copia de seguridad, para que pueda crear uno nuevo de forma segura si es necesario. Esto se puede hacer ejecutando el siguiente comando:

mv /path/to/old_filename /path/to/new_filename

Al hacer esto, estamos «mando» nuestro archivo a su nueva ubicación, que incluye su nombre de archivo final.

En nuestro caso de prueba, el comando será:

mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup


 

 

La versión del archivo de configuración inicial cambiará de nombre a ssl.conf.backup, y puede comenzar a editar el archivo ssl.conf libremente sin tener miedo de romper algo, ya que tiene la copia de seguridad del archivo de configuración anterior que puede restaurarse si es necesario.    

 

 

2.Configuración del servidor web

 

 

Si el certificado SSL no se instaló antes en el servidor, será necesario crear un nuevo archivo de configuración SSL. Se puede hacer usando uno de los editores de texto más populares, como nano, vi, etc. El comando para la creación del archivo será nano ssl.conf o vim ssl.conf, respectivamente. Sugerimos crear el archivo de configuración SSL en la siguiente ruta:    

 

 

/etc/httpd/conf.d/ssl.conf

Si ya ha creado el archivo de configuración, ábralo para editarlo en lugar de crear un nuevo archivo. Sugerimos crear una copia de seguridad del archivo de configuración para tener una copia de seguridad en funcionamiento para revertir los cambios si es necesario. Para crear una copia de seguridad, copie el archivo de configuración antiguo con el siguiente comando:

cp /path/to/ssl.conf /path/to/ssl.conf.backup

Después de eso, compruebe el contenido del archivo y asegúrese de que tenga todas las líneas y valores necesarios del archivo de configuración de ejemplo para configurar la conexión segura.
Para un nuevo archivo, agregue las siguientes líneas, asegurándose de modificarlas con los valores exactos de su nombre de dominio, raíz del documento y las rutas al certificado SSL, la clave privada y el paquete CA.

Aquí está el ejemplo del archivo de configuración:

Listen 443
<VirtualHost *:443>
ServerName (DOMAIN NAME OF THE WEBSITE)
DocumentRoot (ROOT FOLDER OF THE WEBSITE)

 

SSLEngine on
SSLCertificateFile (Certificate PATH)
SSLCertificateKeyFile (Private key PATH)
SSLCertificateChainFile (CA Bundle PATH)
</VirtualHost>

Si hay varios sitios web alojados en el mismo servidor, asegúrese de agregar partes <VirtualHost *:443> separadas para los sitios web correspondientes. Sin embargo, tenga en cuenta que Listen 443 debe estar presente solo una vez en todo el archivo de configuración.

En nuestro caso, el archivo de configuración se ve así:

Listen 443
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/1.crt
SSLCertificateKeyFile /etc/ssl/1.key
SSLCertificateChainFile /etc/ssl/1.ca-bundle
</VirtualHost>

Comprobar el archivo de configuración y reiniciar el servidor web

Ahora, asegúrate de comprobar la sintaxis del archivo ejecutando este comando:

httpd -t

Si el comando responde con «Syntax OK», eres libre de reiniciar el servicio Apache. Para hacer eso, ejecuta el comando:

sudo service httpd restart

Si la salida del comando muestra algunos errores, sugerimos volver a comprobar que todos los pasos de instalación se realizaron correctamente. Dirígete a la sección Consejos y solución de problemas de esta guía para ver más pasos.

Una vez reiniciado, el servidor Apache debe añadir el archivo de configuración SSL recién creado a su configuración. Para comprobarlo, ejecuta el siguiente comando:

httpd -S

¡Hecho! El sitio web ya está protegido. La instalación se puede comprobar aquí.

No hay más acciones obligatorias para asegurar su nombre de dominio, sin embargo, es posible que desee configurar una redirección HTTPS para que el sitio web cambie a una versión segura automáticamente sin introducir https:// manualmente en la barra de direcciones del navegador. Para obtener una explicación más detallada sobre cómo configurar la redirección, consulte esta página.

Si hay problemas con la instalación, asegúrese de revisar esta guía paso a paso para evitar errores. Asegúrate de revisar también la sección de solución de problemas.

 

 

Consejos y solucionadores de problemas

Si se enfrenta a algún problema relacionado con SSL con su sitio web basado en Apache, aquí le mostramos cómo solucionar los errores más conocidos que podrían ocurrir durante el reinicio:

X509_check_private_key: los valores clave no coinciden
Error "Comando no válido 'SSLEngine'
Error de certificado intermedio no confiable y faltante
0906D066:Rutinas PEM:PEM_read_bio:línea final mala

Aquí hay algunos consejos más útiles sobre el proceso:

Si te enfrentas a un error de «permiso denegado» al ejecutar un comando, intenta añadir el parámetro «sudo» antes del comando y ejecutalo una vez más.

Por ejemplo, si nano ssl.conf da como resultado Permiso denegado, puede intentar ejecutar sudo nano ssl.conf en su lugar.

Agregar sudo le otorgará permisos de «superusuario» y la capacidad de realizar algunas acciones que requieren acceso de usuario root sin acceso root real.

Tenga en cuenta que es posible que tenga que introducir una contraseña para el usuario de sudo durante esta operación. Es posible que sus símbolos no se muestren al ingresar (por razones de seguridad), sin embargo, la contraseña se aceptará si se introduce correctamente. Es posible que su administrador del servidor o el equipo de soporte del proveedor de alojamiento le haya dado esta contraseña, por lo que si no conoce la contraseña, le sugerimos que se ponga en contacto con ellos para obtener más ayuda.
Si ve que el SSL se ha instalado sin el paquete de CA, es posible añadir el paquete de CA sin ningún cambio significativo en la configuración de configuración.

En este caso, encuentre el archivo de configuración SSL en su servidor siguiendo los pasos de la guía para apache2 o httpd. Localice la ruta al SSLCertificateFile en el archivo de configuración y abra el archivo a través de esa ruta para su edición. Verás un bloque de código allí (que es el propio SSL). Puede solicitar la descarga del archivo del paquete de CA al personal de soporte de Cloud by MOOM y copiar todo el contenido del archivo .ca-bundle en el SSLCertificateFile abierto.

Los nuevos códigos de paquete de CA deben introducirse desde la nueva línea después del código SSL que ya está presente allí, sin añadir ninguna nueva línea entre ellos, como esta: