Haciendo la transición a HTTPS - Cómo migrar Moodle a HTTPS

Pasos necesarios para activar el acceso por https en Moodle:

1. Solicita un certificado digital válido para tu dominio e instálalo en tu servidor/hosting.

En Nosolored dispones de opciones gratuitas y de pago:

- Let's Encrypt (Gratuitas) Disponible en el panel de control hosting en la opción Avanzado > Certificados SSL
Se autorenueva cada 3 meses aunque puede dar fallos al ser de una entidad externa y dejar el sitio inactivo.

- De pago: https://www.nosolored.com/tienda/6/0/certificados-ssl-soporte.html
Válidos durante 1 año.

La instalación del certificado gratuito o de pago cambia la IP asociada al hosting. Se recomienda esperar unas horas hasta que se propague el nuevo cambio de IP antes de seguir con el resto de acciones en el aula Moodle.

2. Pon tu sitio Moodle en modo de mantenimiento https://docs.moodle.org/all/es/Modo_de_mantenimiento

3. Cambia la variable $CFG->wwwroot en el archivo config.php del aula Moodle (recuerda realizar una copia previa del fichero).
Debemos buscar la siguiente línea (está casi al el final):

$CFG->wwwroot = 'http://www.nuestrodominio.com';

Y cambiar el http del principio por https, es decir, añadirle una s, para que nos quede así:

$CFG->wwwroot = 'https://www.nuestrodominio.com';

4. Actualiza todas las referencias de HTTP a HTTPS en la base de datos de Moodle (opcional).

Para lograr este cometido podemos utilizar la herramienta de conversión a HTTPS de Moodle (https://docs.moodle.org/all/es/Herramienta_para_conversi%C3%B3n_a_HTTPS), que es capaz de convertir tu contenido http (sin contar links) a https, de forma que el contenido se vea correctamente una vez que termines de configurar el sitio para trabajar con un certificado SSL.

5. Modifica el fichero .htaccess de tu sitio con la información siguiente:
# Redirecciona todo http a https - Force SSL/HTTPS
<IfModule mod_headers.c>
Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]