Asistencia para clientes de Nominalia

  1. Asistencia
  2. Servidores
  3. Servidores Dedicados
  4. Cómo instalar un certificado SSL en CentOS 7 vía SSH
  1. Home
  2. Knowledge Base
  3. Servidores
  4. Servidores Virtuales
  5. Cómo instalar un certificado SSL en CentOS 7 vía SSH
  1. Home
  2. Knowledge Base
  3. Seguridad
  4. Certificados SSL
  5. Cómo instalar un certificado SSL en CentOS 7 vía SSH

Cómo instalar un certificado SSL en CentOS 7 vía SSH

Si tienes un Servidor Dedicado o un Cloud VPS sin ningún tipo de panel de gestión como cPanel o Plesk, puede que no sepas cómo instalar un certificado SSL en CentOS 7 por consola de comandos mediante una conexión SSH.

En este manual te facilitaremos las instrucciones acerca de cómo instalar un certificado SSL en CentOS 7 tomando como ejemplo uno de nuestros certificados (Digicert), pero puedes instalar cualquier otro que hayas contratado.

Generar CSR y Clave Privada

En este manual utilizamos un servidor Apache en CentOS 7. Así que, antes de comenzar nada y si no lo tienes instalado, puedes usar yum para instalar Apache a través de los repositorios de CentOS:

yum install httpd

Después, activa Apache como un servicio de CentOS de forma que se inicie automáticamente tras el reinicio:

systemctl enable httpd.service

A continuación, instala Mod SSL para que el SSL pueda instalarse y funcionar sin problemas:

yum install mod_ssl

Este módulo se activará automáticamente durante la instalación y Apache lo podrá iniciar usando un certificado SSL después del reinicio con:

systemctl restart httpd

Ahora, vas a generar las claves CSR y Privada. Para ello, utiliza el comando siguiente:

openssl req -new -newkey rsa:2048  -nodes -keyout dominio.ext.key -out dominio.ext.csr

Donde dominio.ext es el nombre de tu dominio, por ejemplo:

Imagen 1 - Cómo instalar un certificado SSL en CentOS 7

A continuación, deberás rellenar el formulario para poder generar ambas claves:

Country Name (2 letter code) [XX]:

State or Province Name (full name) []:

Locality Name (eg, city) [Default city]:

Organization Name (eg, company) [Default Company Ltd]:

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server’s hostname) []:

Email Address []:

Recuerda NO completar los siguientes datos, simplemente pulsa Enter para saltarlos y que se generen las claves:

A challenge password []:

An optional company name []:

Aquí verás un ejemplo de formulario completado:

Imagen 2 - Cómo instalar un certificado SSL en CentOS 7 formulario completado

Cuando lo hayas generado, podrás consultar los ficheros CSR y KEY con el comando cat. Estos archivos se habrán guardado desde la ubicación donde hayas generado el comando (por ejemplo, /home). Es importante que siempre mantengas guardadas estas claves:

Imagen 3 - Cómo instalar un certificado SSL en CentOS 7 CSR y KEY

Emisión del Certificado SSL

Si has contratado tu Certificado SSL en Nominalia y no sabías cómo instalar un certificado SSL en CentOS 7, entra en tu Panel de Control y clica sobre el nombre de tu certificado que encontrarás en el apartado POR ACTIVAR y pega el CSR que has generado, seleccionando como tipo de servidor Apache:

Imagen 4 - Cómo instalar un certificado SSL en CentOS 7 Archivo CSR

Deberás completar el formulario con los contactos técnico y administrativo. Recuerda, además, que deberás tener creada una de las siguientes cuentas para aprobar el email que te enviará la entidad certificadora y así emitir el certificado:

admin@

administrator@

hostmaster@

webmaster@

postmaster@

Imagen 5 - Cómo instalar un certificado SSL en CentOS 7 Resumen del CSR

Cuando el certificado haya sido emitido, deberás descargar los siguientes certificados:

  • ext.crt (donde tudominio.ext es el nombre común que le hayas dado al certificado, es decir, tu dominio)
  • intermediate-ca.crt
Imagen 6 - Cómo instalar un certificado SSL en CentOS 7 CRT

Instalación: Cómo instalar un certificado SSL en CentOS 7

Ahora, tienes que alojar los ficheros CRT como de la Clave Privada en tu servidor. Recuerda que puedes abrir estos archivos en un programa como Bloc de Notas, Gedit, Nopead++, etc. para copiar su contenido.

Accede a tu servidor y a la ruta /etc/pki/tls, donde encontrarás varias carpetas. Por un lado, deberás alojar el certificado de tu dominio en /etc/pki/tls/certs. La Clave Privada (y el CSR también lo aconsejamos) en /etc/pki/tls/private.

Imagen 7 - Cómo instalar un certificado SSL en CentOS 7 ruta /etc/pki/tls

Así es como debería estar /etc/pki/tls/certs:

Imagen 8 - Cómo instalar un certificado SSL en CentOS 7 Ruta certs

Y así /etc/pki/tls/private:

Imagen 9 - Cómo instalar un certificado SSL en CentOS 7 Ruta private

El certificado intermedio (CA) debe estar instalado en el directorio /etc/pki/ca-trust/extracted/pem:

Imagen 10 - Cómo instalar un certificado SSL en CentOS 7 Ruta /ca-trust/extracted/pem

Puedes copiar y pegar los contenidos de los ficheros con nano o vim dentro de la carpeta correspondiente.

Ahora tendrás que editar el fichero de configuración SSL. Lo encontrarás en /etc/httpd/conf.d/ssl.conf. Deberás descomentar las líneas

#DocumentRoot (la ruta por defecto configurada para el alojamiento de las webs)

#ServerName

Y editarlas de la siguiente forma:

# General setup for the virtual host, inherited from global configuration

DocumentRoot "/var/www/html"

ServerName Dirección.IP.Servidor:443

Donde Dirección.IP.Servidor es la IP de tu máquina. Aquí un ejemplo de cómo debe quedar:

Imagen 11 - Cómo instalar un certificado SSL en CentOS 7 IP ServerName

Además, en este archivo, asegúrate que el SSL está activo:

#   SSL Engine Switch:

#   Enable/Disable SSL for this virtual host.

SSLEngine on

También en este mismo documento deberás indicar dónde están los certificados instalados. Te aconsejamos que comentes las siguientes líneas y añadas las tuyas propias:

#SSLCertificateFile /etc/pki/tls/certs/localhost.crt

#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt

NOTA: dependiendo de la versión de Apache, la directiva SSLCACertificateFile no será aceptada. Utiliza en su lugar SSLCertificateChainFile, que es lo que utilizaremos en el manual.

En la imagen verás un ejemplo de cómo quedaría:

Imagen 12 - Cómo instalar un certificado SSL en CentOS 7 IP Server Certificate Chain Private Key

Y reinicia Apache con:

systemctl restart httpd

También en el fichero /etc/httpd/conf.d/ssl.conf deberás añadir estas líneas al final del documento:

<VirtualHost *:443>

SSLEngine on

SSLCertificateFile /etc/pki/tls/certs/tudominio.ext.crt

SSLCertificateKeyFile /etc/pki/tls/private/private.key

SSLCertificateChainFile /etc/pki/ca-trust/extracted/pem/intermediate-ca.crt

ServerName tudominio.ext

ServerAlias www.tudominio.ext

DocumentRoot /var/www/cloudsiteform.com/public_html

</VirtualHost>

Donde tudominio.ext es el nombre del dominio para el que configuras el SSL. El documento deberá quedar así:

Imagen 13 - Cómo instalar un certificado SSL en CentOS 7 VirtualHost

Si tienes más de un dominio, crea más líneas de <VirtualHost *.443></VirtualHost> de la misma forma.

Y reinicia de nuevo Apache con:

systemctl restart httpd

Redireccionar dominios a HTTPS

Primero, asegúrate que el siguiente módulo está instalado. Lo puedes consultar en el archivo httpd.conf de Apache (/etc/httpd/conf/httpd.conf):

LoadModule rewrite_module modules/mod_rewrite.so

Después, edita el fichero de Virtual Host de Apache (que debería estar en /etc/httpd/sites-available) con estas líneas y para tantos dominios como necesites:

<VirtualHost *:80>

ServerName midominio.ext

Redirect 301 / https://www.midominio.ext

</VirtualHost>

<VirtualHost *:443>

SSLEngine on

SSLCertificateFile /etc/pki/tls/certs/midominio.ext.crt

SSLCertificateKeyFile /etc/pki/tls/private/private.key

SSLCertificateChainFile /etc/pki/ca-trust/extracted/pem/intermediate-ca.crt

ServerName midominio.ext

ServerAlias www.midominio.ext

DocumentRoot /var/www/midominio.ext/carpeta-publicacion-contenidos

</VirtualHost>

Un ejemplo sería el siguiente:

Imagen 14 - Cómo instalar un certificado SSL en CentOS 7 VirtualHost 2

Y reinicia Apache con:

systemctl restart httpd

Y para asegurarte de que el sitio redirecciona hacia HTTPS, crea un archivo .htaccess y dentro del DocumentRoot del dominio que necesites. Puedes utilizar el siguiente código editándolo a tus necesidades:

RewriteEngine On

RewriteCond %{HTTPS}  !=on

RewriteRule ^/?(.*) https://%midominio.ext/$1 [R,L]

Si has seguido todos los pasos correctamente acerca de cómo instalar un certificado SSL en CentOS 7, tu sitio se deberá mostrar como seguro al acceder a él 😊

Imagen 15 - Cómo instalar un certificado SSL en CentOS 7 HTTPS activo

Puedes comprobar si todo se ha instalado correctamente con la herramienta Checker de Digicert.

¿Te resultó útil este artículo?

¿No has encontrado lo que buscabas?

Contáctanos, nuestros expertos te ayudarán

CONTÁCTANOS