Jueves, marzo 7, 2013 23:46
Publicado en la categoría Internet, Linux, Seguridad, Tutoriales

Utilizar https en ciertos casos puede sernos de utilidad, si en los sitios web que manejamos tenemos que hacer login desde fuera de casa, ya que siempre es mejor disponer de un poco más de seguiridad con nuestros datos en estos casos. Si utilizamos http directamente cualquier problema de seguridad en la red puede ser explotado para averiguar nuestro usuario y contraseña con facilidad, mientras que si nos conectamos sobre https gozaremos de un poco más de protección.

En mi caso, se trata de utilizar https para las labores de administración y mantenimiento de los blogs, por lo que quiero que se pueda seguir accediendo a la web por http de forma normal.

Si tenemos un servidor con apache2 y un WordPress, el proceso es muy sencillo.

Lo primero que debemos de hacer es crear e instalar un certificado SSL. Al hacerlo nosotros mismos, es gratuito, el único inconveniente es que nos saldrá una advertencia cada vez que nos logueemos con https debido a que el certificado no está emitido por una entidad de confianza. Pero para el caso que nos concierne nos es indiferente e igual de seguro.

Primero debemos crear la carpeta para guardar el certificado.

sudo mkdir /etc/apache2/ssl

Para generar el certificado, tendremos que tener instalado openssl y escribir lo siguiente:

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

el apartado -days hace referencia a los días que tardará en expirar, en nuestro caso un año.

Nos pedirá que rellenemos una serie de datos:

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]:ES
State or Province Name (full name) [Some-State]:Provincia
Locality Name (eg, city) []:Ciudad
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Web
Organizational Unit Name (eg, section) []:Departamento
Common Name (eg, YOUR name) []:dominio.com
Email Address []:email@dominio.com

 

Una vez hecho esto, solo tendremos que configurar nuestro servidor virtual de apache.

Editamos nuestro sitio en:

nano /etc/apache2/sites-available/dominio

Copiamos toda la configuración del servidor virtual, y la pegamos de nuevo, modificando y añadiendo lo siguiente:

<VirtualHost *:443>

 

ServerName dominio.com:443

 

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

 

Y solo nos queda reiniciar el servidor apache2:

service apache2 restart

 

Ojo, ya que al utilizar “*:443″, cualquier petición https que llegue a nuestro servidor, si el VirtualHost correspondiente no está configurado como explico arriba, nos entrará por otro de los VirtualHost que si esté configurado para resolver las peticiones https. Para evitar esto debemos añadir una configuración para 443 como hemos hecho para nuestro dominio pero en el archivo de configuración default.

 

Deja un comentario