Notice the "location" is the same as the URL requested which will never complete.
I am not expert with the Cloudflare tunnel but it looks like you have your domain proxied with them. It might be related to your Encryption Mode setting. What is it?
Frankly, this seems perhaps a better question to sort out at the Cloudflare community. You already have your Let's Encrypt cert so it's a matter of configuring Cloudflare (and perhaps Apache) to use it properly
Cloudflare tunnel is pointing at HTTP port 80 on the Apache server, but it has been configured by Certbot to do redirection to HTTPS. The issue is, tunnel is proxying HTTPS on the edge back to HTTP on the origin, therefore infinite loop. The solution is to re-configure tunnel to point at HTTPS port 443 (optionally setting "No TLS Verify", if no valid cert on the server, but not needed here since a valid Let's Encrypt cert exists).
It's also possible to use Origin CA certificate to maintain trust chain for the purpose of proxying via a CDN, which can be useful in instances of no automation possible (they can be valid up to 15 years, but only Cloudflare Edge trusts them).