IMPORTANTE: Para esta gestión son necesarios conocimientos de uso de SSH y de servidores. Nominalia no se responsabiliza de los daños que puedan producirse, haz una copia de seguridad de tu servidor antes de iniciar los pasos.
Si tienes un Servidor Dedicado o un 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 realizarlo.
Antes de nada, para Emitir el certificado SSL será necesario que tengas un fichero .CSR y un fichero .KEY (llamado también Clave Privada/Private Key). Si has contratado uno de nuestros Certificados SSL, hazlo desde el panel de Nominalia siguiendo nuestro Manual de Emisión de Certificado SSL, si es un SSL externo, puedes seguir los pasos de la sección "Generar CSR y Clave Privada desde el Servidor" de este manual.
Si ya tienes emitido el Certificado SSL, ve directamente a la sección de Instalación del Certificado SSL.
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:
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:
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:
Si tienes un SSL de Nominalia, cuando cuando el certificado haya sido emitido, ve a tu Zona de Cliente y haz clic en la columna de la derecha sobre el certificado, bajo la sección de “Certificados SSL”:
IMPORTANTE: Si el certificado aparece bajo la sección de "POR ACTIVAR" querrá decir que aún no lo has emitido.
Verás una ventana como la siguiente:
Ahora baja hasta la sección llamada "Su Certificado SSL" y localiza el fichero .CRT que incluye el nombre de tu dominio. Descárgalo a tu ordenador mediante el icono de la flecha:
Si lo abres con el Bloc de Notas de tu ordenador, verás un código que empieza y acaba con lo siguiente:
-----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
Descarga también el "Certificado intermedio" llamado "intermediate-ca.crt" que hay más abajo (también lo podrás abrir con un bloc de notas):
Ahora, tienes que alojar el fichero .CRT y el fichero .KEY (La Clave Privada) en tu servidor. Recuerda que puedes abrir estos archivos en un programa como Bloc de Notas, Gedit, Notepad++, 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.
Así es como debería estar /etc/pki/tls/certs:
Y así /etc/pki/tls/private:
El certificado intermedio (CA) debe estar instalado en el directorio /etc/pki/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 siguientes:
#DocumentRoot (la ruta por defecto configurada para el alojamiento de las webs) #ServerName
Para que queden 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:
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:
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í:
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
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:
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 😊
Y si lo que necesitas es contratar un Certificado ssl en la web de Nominalia puedes encontrar diferentes opciones.