Llevamos semanas convirtiendo webs a HTTPS y hace unos días hemos tenido los primeros problemas con una web que al cambiar todas las URLs a SSL daba un fallo en los navegadores de «The page isn’t redirecting properly» / «ERR_TOO_MANY_REDIRECTS». Te explicamos como solucionarlo.
Después de darle muchas vueltas y analizar las redirecciones que se estaba produciendo, vimos que la web tenía configuradas las DNS de CloudFlare. Como todo lo demás parecía estar correcto, el problema podía estar relacionado con este proveedor de servicios.
Y efectivamente, Cloudflare activa por defecto en los dominios una configuración SSL, que aunque no se use, está presente. En el caso de que el dominio cuando se configura Cloudflare no tenga SSL automáticamente hace todo el intercambio de información sin cifrar. Si luego se pasa la web a SSL, Cloudflare no detecta este cambio y hay que cambiar la configuración en el panel.
Por defecto si la web está sin SSL, Cloudflare la configura con lo que llaman «Flexible SSL«:
Flexible SSL: You cannot configure HTTPS support on your origin, even with a certificate that is not valid for your site. Visitors will be able to access your site over HTTPS, but connections to your origin will be made over HTTP. Note: You may encounter a redirect loop with some origin configurations.
Si está activado el Flexible SSL NO se puede utilizar HTTPS en la web porque puede dar un error de bucle de redirecciones. Y efectivamente ahí está la solución.
Simplemente cambiando la opción de «Flexible SSL» por «Full SSL» (no recomendable porque permite que el certificado SSL tenga errores, lo cual no debería de pasar y habría que solucionarlo) o «Full SSL (strict)» (la mejor opción.
Con este cambio de configuración ya funciona correctamente cualquier dominio bajo SSL / HTTPS.
Como siempre espero que le sirva a alguien.