Si tienes un Servidor o 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 Debian o Ubuntu 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 Debian o Ubuntu desde la consola de comandos o terminal vía SSH tomando como ejemplo uno de nuestros certificados (Digicert), pero puedes instalar cualquier otro que hayas contratado.
En este manual utilizamos un servidor Apache en Debian 9 y que serviría también para Ubuntu. Así que, antes de comenzar nada y si no lo tienes instalado, puedes usar apt-get para instalar Apache a través de los repositorios:
apt-get install apache2
A continuación, instala el módulo SSL para que el certificado pueda instalarse y funcionar sin problemas:
apt-get a2emod ssl
El sitio por defecto de Apache utiliza una plantilla muy útil para activar SSL, así que lo tienes que activar con:
a2ensite default-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:
service apache2 reload
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 has contratado tu Certificado SSL en Nominalia y no sabías cómo instalar un certificado SSL en Debian o Ubuntu 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:
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@
Cuando el certificado haya sido emitido, deberás descargar los siguientes certificados:
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/apache2, y crea la carpeta ssl con el comando mkdir, es decir.
mkdir /etc/apache2/ssl
Así es como debería estar /etc/apache2/ssl:
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/apache2/sites-enabled/default.ssl.conf. Deberás editar las primeras líneas con la información de tu dominio y puerto
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName tudominio.ext:443
DocumentRoot /var/www/html
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 en el proceso de cómo instalar un certificado SSL en Debian o Ubuntu. Te aconsejamos que comentes las siguientes líneas y añadas las tuyas propias:
#SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
#SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
#SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.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 todo el documento:
Y reinicia Apache con:
service apache2 reload
Tendrás que abrir el puerto 443 para SSL utilizando el siguiente comando:
openssl s_client -connect ip_del_servidor:443
Donde ip_del_servidor es la que estés utilizando. Se abrirá el puerto y se mostrará la información del SSL instalado:
Primero, asegúrate que el siguiente módulo está instalado con el siguiente comando:
a2enmod rewrite
Después, edita el fichero de Virtual Host de Apache (que debería estar en /etc/apache2/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/apache2/ssl/midominio.ext.crt
SSLCertificateKeyFile /etc/apache2/ssl/private.key
SSLCertificateChainFile /etc/apache2/ssl/intermediate-ca.crt
ServerName midominio.ext
ServerAlias www.midominio.ext
DocumentRoot /var/www/html (directorio donde el dominio en cuestión está alojado)
</VirtualHost>
Un ejemplo sería el siguiente:
Y reinicia Apache con:
service apache2 reload
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 Debian o Ubuntu, tu sitio se deberá mostrar como seguro al acceder a él 😊
Puedes comprobar si todo se ha instalado correctamente con la herramienta Checker de Digicert.
Y si lo que necesitas es contratar un certificado ssl en la web de Nominalia puedes encontrar diferentes opciones.