miércoles, 27 de enero de 2021

Redirigir el trafico de HTTP a HTTPS en sitio web Apache2

 

Después de haber instalado un certificado SSL y publicado el sitio web con este certificado, tal vez quieras redirigir todo el tráfico HTTP al nuevo sitio HTTPS. 

Para ello tan solo es necesario modificar el fichero de configuración del sitio web de apache e incluir unas líneas de código.


Pasos: 

1. Editar el fichero de configuración del sitio web: 

$ sudo vim /etc/apache2/sites-available lasendadeladmin.conf 


2. Añadir la linea de codigo para redirigir el trafico del puerto 80 (http) al puerto 443 (https);


NameVirtualHost *:80

<VirtualHost *:80>
   ServerName www.lasendadeladmin.com
   Redirect / https://www.lasendadeladmin.com
</VirtualHost>

<VirtualHost _default_:443>
   ServerName www.lasendadeladmin.com
   DocumentRoot /var/www/lasendadeladmin
   SSLEngine On
# etc...
</VirtualHost>


3. Después de haber incluido el último paso es reiniciar el apache : 

$ sudo apachectl restart 


 

domingo, 24 de enero de 2021

Instalar certificado SSL Wildcard en sitio web con Apache2


Una de las formas más importantes de asegurar el intercambio de datos entre un servidor y el cliente que accede a él es el uso de certificados SSLPara asegurar que la comunicación se realiza realmente con el servidor correcto, el servidor puede ser certificado por una institución de confianza.


Requisitos: 

  • Asegurarse de que el servidor tiene el puerto 443 (https) abierto
  • Haber adquirido un Certificado SSL en cualquier entidad certificadora oficial
  • Fichero con la Clave Privada .key 
  • Fichero de Certificado SSL .cer o .crt
  • Fichero de Certificados Intermedios .cer o .crt   


Pasos:

1. Subir los ficheros con los certificados al servidor en una carpeta a la que se tenga acceso, como por ejemplo la home : /home/personal/certificados  


2. Crea una carpeta en la ruta /etc/ssl/certs 

$ sudo mkdir /etc/ssl/certs/LaSendaDelAdmin 


3. Copia los ficheros a la ruta recién creada: 

$ sudo cp /home/personal/certificados/* /etc/ssl/certs/LaSendaDelAdmin 


4. Cambia los permisos de los ficheros: 

$ sudo chmod 777 /etc/ssl/certs/LaSendaDelAdmin/* 


5. Edita la configuración del sitio de apache: 

$ sudo vim /etc/apache2/sites-available/lasendadeladmin.conf 


6.  En la configuración del site, modifica el VirtualHost para que escuche el puerto 443 de https e incluye las 4 lineas de código para configurar los certificados en el sitio:  


<VirtualHost *:443>

    ServerAdmin webmaster@localhost

    ServerName lasendadeladmin.com

    ServerAlias www.lasendadeladmin.com

    SSLEngine on

    SSLCertificateFile /etc/ssl/certs/LaSendaDelAdmin/LaSendaDelAdmin.com_ssl_certificate.cer

    SSLCertificateKeyFile /etc/ssl/certs/LaSendaDelAdmin/*.LaSendaDelAdmin.com_private_key.key

    SSLCertificateChainFile /etc/ssl/certs/CloudGamers/*.LaSendaDelAdmin.com_ssl_certificate_INTERMEDIATE.cer

....


7. Si no esta el módulo SSL habilitado, habilitalo con el comando a2enmod ssl  : 

$ sudo a2enmod ssl 


Considering dependency setenvif for ssl:

Module setenvif already enabled

Considering dependency mime for ssl:

Module mime already enabled

Considering dependency socache_shmcb for ssl:

Enabling module socache_shmcb.

Enabling module ssl.

See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.

To activate the new configuration, you need to run:

  systemctl restart apache2


8. Ahora comprueba que no hay ningun error en el código: 

$ sudo apachectl configtest


Syntax OK


9. Una vez verificado que la sintaxis de los ficheros de configuración es correcta, ya solo queda reiniciar el servicio de apache para habilitar el sitio web ahora con el certificado:

$ sudo systemctl restart apache2



sábado, 16 de enero de 2021

Problema con el fichero ads.txt en Blogger con dominio propio

 

Desde hace un tiempo Google Adsense recomienda configurar un fichero llamado ads.txt para asegurar que la publicidad que se ofrece en sitios webs es la autorizada por el propietario del sitio. De esta manera, al crear el archivo ads.txt se tiene más control sobre quien puede vender anuncios en tu blog e impedir que se muestre publicidad de otros anunciantes no autorizados. 

Debido a esta recomendación, en el panel de el Google Adsense mostraba un mensaje que indicaba que no tenia el fichero ads.txt correctamente configurado. 


Sin embargo, había seguido los pasos para poder publicar el fichero ads.txt, me seguia mostrando el error, y eso quiere decir que AdSense no es capaz de encontrar el fichero dentro del sitio web. 

El problema puede ser que si usas un dominio propio, blogger no deja usar el dominio de raiz y te obliga a usar un subdominio (por ejemplo www.tudominio.com o blog.tudominio.com). Pero en cambio AdSense esta usando tu dominio raíz y no tu subdominio para monetizar el sitio web. 




Para confirmar que este es el problema, tan solo hay que validar si el archivo ads.txt es accesible desde las siguientes URLs: 

  • http://www.tudominio.com/ads.txt
  • https://www.tudominio.com/ads.txt
  • http://tudominio.com/ads.txt
  • https://tudominio.com/ads.txt

Si las URLs con el subdominio www. muestran el fichero ads.txt es correcto. 

Pero si las entradas que apuntan al dominio raíz no muestran el fichero, has encontrado el problema. 

Para solventarlo esto son los pasos: 

  1. Entra en la Configuración de Blogger
  2. Deshabilita la opción de Disponibilidad de HTTPS
  3. Deshabilita la Redirección del dominio de: tudominio.com a www.tudominio.com
  4. Refresca el sitio web
  5. Vuelve a habilitar la Redirección del dominio
  6. Refresca el sitio web (en este punto, en la URL http://tudominio.com/ads.txt ya debería funcionar correctamente
  7. Habilita la Disponibilidad de HTTPS
  8. Espera que se registre los certificados HTTPS y cuando esten disponibles, habilita la opción de Redirección de HTTPS

Con estos pasos, el ads.txt debería estar accesible tanto desde el subdominio como del dominio principal. 


miércoles, 13 de enero de 2021

Instalar Pages, Keynote y Numbers gratis en versiones viejas de macOS

Si tienes un Mac antiguo es posible que ya no tengas instalada la última versión de macOS y que tengas problemas para instalar o actualizar algunas de las aplicaciones de la App Store  . 

El mensaje que muestra cuando se instala una aplicación es que no se puede instalar porque se requiere macOS xx.xx o una versión posterior:


No vamos a poder instalar la última versión de la aplicación, lo que si que podemos hacer es instalar la última versión compatible. 

Para ello necesitaras tener una versión antigua de Pages, Keynote o Numbers instalado en el directorio de Aplicaciones para poder actualizarlo. Si no tienes una version antigua instalada o no la tienes registrada en tu Apple ID estos son los pasos para conseguir instalarla: 


Pasos

1. Lo primero es instalar una versión antigua de iWork. Puedes descargar la versión de prueba de iWork '09 trial para instalarla.



2. Una vez instalada el iWork '09 , en la carpeta de Aplicaciones estarán las versiones de prueba de las tres aplicaciones: Pages, Numbers y Keynote. 

3. Inicia las aplicaciones y después cierralas para que la aplicación aparezca en la App Store.

4. Después inicia el App Store y ve a Actualizaciones y marca la opción Mostrar actualizaciones incompatibles y ahora aperecerán las aplicaciones disponibles para seleccionarlas y actualizarlas. 



5. Si intentas actualizarlo fallará, pero se habrá incluido la aplicación en las compras del Apple ID. 



6. Al clicar para instalar la aplicación, preguntará si queremos instalar una versión anterior. 



Una vez completada la instalación, todas las aplicaciones aparecerán en la carpeta de Aplicaciones


sábado, 9 de enero de 2021

Instalar Wordpress en la instancia del Free Tier de Google Cloud Platform

Como ya comenté, tanto Google como las otras compañias ofrecen un periodo de prueba donde poder probar sus plataformas de cloud de forma gratuira. Una vez concluye este periodo de prueba, es cuando toca empezar a pasar por caja, pero Google esta ofreciendo una serie de servicios de forma gratuita en un programa que muy acertadamente han llamado Always Free . Cuando este periodo 

Yo he aprovechado este servicio para crear una instancia de Linux gratuita y probar Wordpress:


A continuación os dejo los pasos para instalarlo:

Pasos: 

1. Conecta al terminal (SSH) de la instancia de GCP donde quieres instalar Wordpress.

2. El primer caso es instalar los módulos necesarios para ejecutar: APACHE2, PHP y MySQL, para ello se puede usar el comando APT-GET :

$ sudo apt-get update

$ sudo apt-get install php libapache2-mod-php mysql-server php-mysql


3.  Una vez instalado, es necesario configurar un site en apache creando un fichero de configuración:

    $ sudo vim /etc/apache2/sites-available/lasendadelwordpress.conf 

Con el siguiente contenido:

<VirtualHost *:80> 

    ServerAdmin webmaster@localhost 

    ServerName lasendadelwordpress.local 

    ServerAlias www.lasendadelwordpress.local 

    ErrorLog ${APACHE_LOG_DIR}/error_lasendadelwordpress.log 

    CustomLog ${APACHE_LOG_DIR}/access_lasendadelwordpress.log combined 


    DocumentRoot /var/www/lasendadelwordpress 

    <Directory /> 

        Options FollowSymLinks 

        AllowOverride None 

    </Directory> 

    <Directory /var/www/lasendadelwordpress

        Options Indexes FollowSymLinks MultiViews 

        AllowOverride All 

        Order allow,dany 

        allow from all 

    </Directory> 

</VirtualHost> 


4. Con el fichero de configuración creado, es necesario activar el site:

    $ sudo a2ensite wordpress 

Enabling site lasendadelwordpress.
To activate the new configuration, you need to run:
systemctl reload apache2

Despues hay que activar la reescritura de URL

    $ sudo a2enmod rewrite 

Y recargar apache

    $ sudo service apache2 reload 


5. El siguiente paso es crear una base de datos en MySQL. Es necesario abrir la linia de comando de MySQL:

$ sudo mysql -u root 

Dentro de la linia de comando SQL es necesario crear una base de datos nueva y un nuevo usuario con permisos necesarior para operarla. En negrita he destacado los comandos necesarios para crear la base de datos. 

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 6076
Server version: 10.1.47-MariaDB-0+deb9u1 Debian 9.13
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

> CREATE DATABASE lasendadelwordpress;
Query OK, 1 row affected (0.17 sec)

> GRANT ALL PRIVILEGES ON lasendadelwordpress.* TO send4dmin@'localhost' IDENTIFIED BY 'tupassword’;
Query OK, 0 rows affected (0.29 sec)

> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.10 sec)

> EXIT
Bye

6. Con la base de datos creada, hay que configurar el sitio de Wordpress para ello copiaremos el fichero de configuración de ejemplo y crearemos uno nuevo con el siguiente contenido. Primero copiamos el fichero de configuración:

$ sudo copy /var/www/lasendadelwordpress/wp-config-sample.php /var/www/lasendadelwordpress/wp-config.php  
Dentro del fichero solo es necesario modificar las línias que hacen referencia a la configuración de la base de datos:

$ sudo vi wp-config-php

define('DB_NAME', '
lasendadelwordpress'); // The name of the database
define('DB_USER', '
send4dmin'); // Your MySQL username
define('DB_PASSWORD', '
tupassword'); // ... and password

8. Para iniciar el proceso de configuración de Site de wordpress es necesario acceder al enlace:  



9. Es necesario rellenar el formulario con la información requerida y clicar en Install Worpdpress 






10. Y una vez instalado, solo hay que acceder a la URL de administración del sitio y empezar a trabajar: 





martes, 5 de enero de 2021

Permalinks de Wordpress no funcionan correctamente en Apache2

 

Wordpress usa por defecto URLs del tipo http://lasendadelwordpress.com/?p=123. Esta estructura de URL  no son recomendables para el SEO. Por eso la mayoria de los sitios de Wordpress usan Permalinks, que es un termino que se para los URLs amigables para el SEO. Estos Permalinks pueden contener información del post, categoria, etiquetas y el título, permitiendo el uso de palabras clave dentro de la URL. 

Es posible activar Permalinks directamente en un sitio Wordpress simplemente accediendo a Settings > Permalinks y ahí escogiendo el tipo de URL que queremos: 




Problemas con los Permalinks


Una vez se han configurado los Permalinks en Wordpress es posible que estos no funcionen correctamente en servidores web con Apache2 o que la web no sea accesible y muestre un error tipo: 


Not Found

The requested URL was not found on this server.


Apache/2.4.25 (Debian) Server at www.lasendadeladmin.com Port 80


Esto se deve a que Permalinks requiere de tres elementos de configuración de servidor para funcionar correctament:

- Apache2 mod_rewrite

- Configuración del Site: AllowOverwrite

- Modificación .htacess 


Apache2 mod_rewrite 

Es posible habilitar cualquier módulo de apache usando el comando a2enmod. Para habilitar mod_rewrite tan solo ejecuta el comando: 

$ sudo a2enmode rewrite 

Si el módulo ya esta activado, recibiras un mensaje de sistema indicandolo. 

Una vez activado, es necesario reiniciar Apache para se aplique cualquier cambio en la configuración. Es necesario ejecutar el comando: 

$ sudo service apache2 restart

El servidor esta preparado para recibir las reglas de rewrite.


AllowOverwrite 

Por defecto Apache no permite el uso del fichero .htacess para los sitios web, por lo que es necesario editar la configuración de virtual host para pemitirlo. Es necesario añadir el siguiente código en el ficher /etc/apache2/sites-available/tusitio.conf : 

<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>

Una vez actualizado es necesario recargar el Apache: 

$ sudo service apache2 reload


.htaccess 

Al activar los Permalinks, el mismo Wordpress te indica que es necesario añadir un código en el fichero .htaccess


Este fichero tiene que estar en la raiz del sitio de Wordpress (por ejemplo /var/www/html) . Es posible que este fichero no exista, de ser así solo es necesario crearlo y copiar el código dentro. 

$ sudo vi /var/www/html/.htaccess