0

Instalando WordPress en Ubuntu 20.04 con certificado SSL

Difunde No Solo Hacking!

Ya dijimos que íbamos a hacer muchas practicas con las máquinas virtuales que instalamos, en este caso usaremos la instlación de Ubuntu 20.04 que vimos AQUÍ.

Pre-requisitos:

  • Apache2
  • PHP
  • MySql

Ahora vamos a instalar todo lo necesario para poder empezar a instalar nuestro Wordpres.

Lo primero, como siempre… actualizar a tope la máquina.

sudo apt-get update -y && sudo apt-get dist-upgrade -y

Ahora a instalar todas las dependencias

sudo apt install apache2 php libapache2-mod-php mariadb-server mariadb-client php-mysql -y

Cuando termine, vamos a empezar a configurar nuestra base de datos. Lo primero es securizarla.

sudo mysql_secure_installation

En este proceso nos va a preguntar varias cosas, os pego lo que tenéis que poner:

Lo primero que nos pregunta es que pongamos la password de root para msyql, como no tiene ninguna, porque lo acabamos de instalar, le damos enter.

Ahora nos va a perdir que pongamos una password a root. Poned la que queráis pero acordaros de que habéis puesto 🙂

Lo siguiente es que si queremos borrar los usuarios anónimos. La respuesta es obvia, si.

Ahora nso pide que confirmemos que se pueda administrar remotamente por root… ponemos que no queremos permitirlo

LA siguiente pregunta es que si quermeos borrar las bases de datos de test. Le damos que si.

Lo siguiente es que si queremos cargar de nuevo los privilegios en la tabla, asi que… si

Una vez terminado con el asistente, vamos a crear la base de daots para WordPress y el usuario con el que WordPress se va a contectar a la Base de datos.

sudo mysql

Una vez logueados en mysql, creamos la base de datos.

CREATE DATABASE NoSoloHacking_db;

Ahora toca el usuario:

CREATE USER 'nsh'@'localhost' IDENTIFIED BY 'Passworddelusuario';

Ahora le damos permisos al usuario nsh, en la base de datos que hemos creado (NoSoloHacking_db)

GRANT ALL PRIVILEGES ON NoSoloHacking_db.* to nsh@'localhost';

Aplicamos cambios y salimos

FLUSH PRIVILEGES;
exit

Por si hacemos el muñón, vamos a copiar el archivo de configuración de Apache.

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/wordpress.conf

Ahora editamos el archivo que hemos copiado.

sudo vim /etc/apache2/sites-available/wordpress.conf

Y cambiamos donde dice DocumentRoot a lo siguiente.

DocumentRoot /var/www/wordpress

Y ponéis la línea de ServerName, con el nombre del dominio o si no va a estar abierto a internet, poned localhost como valor.

Si le dáis un valor de dominio sería:

ServerName nosolohacking.info

Si queréis crear un alias para www, podeis hacerlo con el parámtero ServerAlias, para localhost no es necesario.

ServerAlias www.nosolohacking.info

Guardad el archivo antes de salir.

Lo siguiente es habilitar las configuraciones que hemos hecho en Apache y deshabilitar el sitio que se crea por defecto, con los siguientes comandos:

sudo a2ensite wordpress.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2

Ahora toca ya la instalación de WordPress 🙂

vamos a descargar la última versión:

cd /tmp
wget -O wordpress.tar.gz https://wordpress.org/latest.tar.gz

Descomprimimos el archivo descaragado:

sudo tar -xzvf /tmp/wordpress.tar.gz -C /var/www

Ahora toca darle a Apache, permiso de propietario de la carpeta de worpress:

sudo chown -R www-data.www-data /var/www/wordpress

Abrimos un navegador y metemos la IP o el nombre del servidor. Nos deberia aparecer el asistente de isntalacion de wordpress.

Lo primero es elegir el idioma.

Como véis tenemos que darle los datos de:

  • Nombre de la base de datos
  • Usuario para conectarse a la BBDD
  • La password del usuario
  • El servidor
  • El prefijo de la tabla

Estos datos son los que pusimos cuando configurábamos Mysql.

Le damos a ejecutar la instalación.

Cuando termina, tenemos que poner el nombre a nuestro sitio, crear el primer usuario, asi que a por ello!

Y como veis, ya tenemos instalado nuestro WordPress!!

No tan rápido… no hemos terminado!

Efectivamente, no hemos terminado, hemos instalado wordpress, pero dijimos que queriamos tener un entorno seguro usando un certificado SSL.

A por el certificado!

Necesitamos generar un certificado para nuestro sitio, en este caso, va a ser autofirmado, por lo que no necesitamos pagar por uno. Para generarlo, corremos el comando.

sudo openssl req -x509 -nodes -days 3365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

Por que una fuerza de encriptacion de 2048 y no 4096?? pues podéis hacerlo, pero tened en cuenta lo siguiente, si usamos 4096:

  • Se incrementa la fuerza del cifrado
  • El SSL handshake va a ser más lento
  • Incrementa el uso de CPU durnato el proceso del handshake

Esto nos va pedir que indiquemos información para el certificado, como el país, región…

Nos toca ahora hacer los cambios a nuestra configuración del sitio en Apache

 sudo vim /etc/apache2/sites-available/default-ssl.conf

Y en ese archivo modificamos DocumentRoot y añadimos dos líneas mas

DocumentRoot /var/www/wordpress
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

Guardamos y salimos. Lo siguiente es habilitar el módulo SSL en Apache

sudo a2enmod ssl
sudo systemctl restart apache2

Ahora habilitamos SSL para el sitio con los comandos:

sudo a2ensite default-ssl
sudo systemctl reload apache2

Y ahora si, ya tenemos nuestro sitio con un certificado autofirmado.

Ahora si podemos celebrarlo


Difunde No Solo Hacking!

Carlos Melantuche

Leave a Reply

Your email address will not be published. Required fields are marked *

1 + = 7