Crear certificados SSL en Apache (Ubuntu12.04)

Primero que nada cabe destacar que esta guía está hecha sobre un sistema Ubuntu 12.04, aunque no imposibilita que los comandos expuestos puedan ser utilizados en versiones anteriores o posteriores.

Hoy en día existen muchos medios por los cuales viaja nuestra información personal. Estando en la era de la información, el usuario necesita confiar en que su información viaje a cualquier lugar del mundo de forma segura e íntegra a través de internet. En la actualidad existen distintas maneras de encriptar información, una de estas maneras son el uso de certificados SSL.

Acerca de los certificados SSL

Un certificado SSL(Secure Socket Layer) es un protocolo criptográfico de seguridad desarrollado originalmente por Netscape, que busca, mediante la codificación de la información del sitio, crear una conexión más segura. Esto se cumple mediante la utilización de una clave de seguridad de 2048 bits que es conocida solo por el usuario y el servidor al que se está conectado.

Para utilizarlo es necesario que la web tenga instalado un sistema de certificados SSL y que el navegador utilizado por los usuarios cuente con soporte para SSL(hoy en día todos los navegadores cuentan con soporte a ésta tecnología).

Rompiendo la inercia

En el caso de que no tengas instalado apache en el servidor, se puede descargar tipeando la siguiente orden:

sudo apt-get install apache2

Activando el módulo SSL

Para habilitar el módulo SSL tecleamos lo siguiente:

sudo a2enmod ssl

Reiniciamos Apache:

sudo service apache2 restart

Almacenamiento de clave y certificado

En este paso tenemos que crear un directorio en donde se almacenará la clave generada por el servidor y el certificado.

Tecleamos:

 

sudo mkdir /etc/apache2/ssl

 

Creando un certificado autofirmado

Cuando solicitamos un nuevo certificado, se puede especificar el tiempo de validez del certificado hasta que expire, e incluyendo si queremos encriptarlo en 2048 bits, aunque esta parte deberíamos dejarla tal como está ya que es lo que se utiliza hoy en día.

Cuando solicitamos un nuevo certificado , podemos especificar el tiempo que el certificado debería seguir siendo válido cambiando el 365 con el número de días que preferimos . Tal y como está este certificado caducará después de un año .

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Con el siguiente comando vemos que creamos los archivos en donde estará el certificado(apache.crt) y la clave(apache.key), ambos en la misma carpeta.

Este comando le mostrará desde la terminal terminal una lista de campos que necesitan ser llenados.

La línea más importante es ” Common Name ” . Introduzca su nombre de dominio oficial aquí o , si todavía no tiene uno, la dirección IP de su sitio.

 

You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: AR
State or Province Name (full name) [Some-State]:Buenos Aires
Locality Name (eg, city) []:CABA
Organization Name (eg, company) [Internet Widgits Pty Ltd]:DL Inc
Organizational Unit Name (eg, section) []:Depto de la CABA
Common Name (e.g. server FQDN or YOUR name) []:example.com

Email Address []:webmaster@dlinc.com

Estableciendo el Certificado

Ahora tenemos todos los componentes necesarios para el acabado del certificado. Lo siguiente que hay que hacer es configurar los hosts virtuales para mostrar el nuevo certificado.

Abra el archivo de configuración de SSL:

nano / etc/apache2/sites-available/default-ssl

Dentro de la sección que comienza con <VirtualHost _default_:443> , hacer rápidamente los siguientes cambios…

Añadir una línea con el nombre del servidor justo debajo de la dirección de correo electrónico del administrador del servidor :

ServerName ejemplo.com: 443

Reemplace ejemplo.com con su nombre de dominio DNS aprobado o dirección IP del servidor (debe ser el mismo que el “Common Name” en el certificado ) .

Encuentra las tres líneas siguientes , y asegúrese de que coincidan con las extensiones a continuación:

SSLEngine en

SSLCertificateFile / etc/apache2/ssl/apache.crt

SSLCertificateKeyFile / etc/apache2/ssl/apache.key

Guarde y salga del archivo.

Activando el nuevo host virtual

Antes de que el sitio web que funcionará en el puerto 443 pueda ser activado , necesitamos habilitar el host virtual:

sudo a2ensite default- ssl

Al tener todo configurado, reiniciaremos el servidor Apache que se volverá a cargar con todos los cambios en su lugar.

sudo service apache2 reload

En el navegador , escriba https://sudirección y podrá visualizar el nuevo certificado. Una vez que se ha configurado todo , se puede instalar un servidor FTP.
Espero que lo hayan disfrutado y sea de gran utilidad para aquellos que deseen enseñar con éste material o quieran utilizarlo para sus servidores Apache. Saludos!

Sobre el autor
Estudiante de ingeniería en computación, aficionado a la seguridad informática y la programación.
Comparte este artículo
  • Henry G

    Buen aporte gracias.
    Seguridad ante todo, si señor.

    Hay unos cuantos “typos”, por favor revisalo, hay varias líneas de comando con “/ etc/” en lugar de “/etc/” y el último comando: “sudo servicio apache2 reload” debe ser: “sudo service apache2 reload”.

Ubuntizando.com © 2014 All Rights Reserved