I helped develop Tunnel over the last ~3 years, and I love it, but it's definitely overkill if you just want to serve some static files on the edge.
(Please delete if this goes against HN policy, I'm trying not to be a shill here, just help tristor avoid spending an hour configuring page rules and cache policies)
1. No SSL: User <--HTTP--> Cloudflare <--HTTP--> Origin Server
2. Flexible SSL: User <--HTTPS--> Cloudflare <--HTTP--> Origin Server
3. Full SSL: User <--HTTPS--> Cloudflare <--HTTPS--> Origin Server; Self-signed cert ok, expired cert ok
4. Full SSL (strict): User <--HTTPS--> Cloudflare <--HTTPS--> Origin Server; Origin server must use an SSL certificate that Cloudflare provides 
5. Strict (SSL-Only Origin Pull): User <--HTTPS--> Cloudflare <--HTTPS--> Origin Server; same as Full SSL (strict), but you pay need to pay Cloudflare more money
3 and above will fix this issue as they encrypt from Cloudflare to the Origin Server.
This is the traffic flow from the link:
User -> Cloudflare -> Airtel -> GitHub Pages
Where the connection with flexible SSL is Cloudflare <--HTTP--> GitHub Pages.
Upgrading to Full SSL (or higher) and using HTTPS on GitHub  should fix.
Alternatively, deploy your static website with Cloudflare Pages , which has feature parity with Github Pages.
The flow would then be: User <--HTTPS--> Cloudflare Pages
EDIT: The replies by kentonv, x1110dc, and r1ch all have valid points.
Cloudflare Pages was trivially easy to set up, complete with GitHub integration and I can heartily recommend it.
The sites I’m hosting are plain old static sites. I have a separate private repository for each site on GitHub, with all of the html files and the few images and such that the sites have, just as I always had, but now when I push commits to these repos they are automatically pulled and deployed by Cloudflare Pages and basically all I had to do was to enable GitHub integration, choose the repository, tell Cloudflare how to “build” it, which because everything is static the “build” command in my case is simply:
With htdocs just being a directory of static content inside of any of my website repositories for the site in question, to keep the content I want to serve separate from things like the README.md and other files that I also have in each repo.
cp -R htdocs dist
Then I told Cloudflare Pages that the “build” output is in the “dist” directory.
Because I have other resources and projects in AWS I'll keep this setup. It's so close to free that cost doesn't bother me.
It is modeled off of the code used to generate Vue blog, but I made a ton of little modifications, including some changes directly to vitepress.
Keep in mind that vitepress is very much an early work in progress and the blog functionality is just kinda tacked on, the default use case is documentation. It also definitely has bugs and is under heavy development so wouldn't recommend it quite yet unless you are actually interested in getting your handa dirty with Vue 3. I am glad I used it because it gave me an excuse to start learning Vue, but unless you are just using the default theme to create a documentation site, it will require some work.
nope, we do unlimited sites on pages! here's the free plan :
> 1 build at a time
> 500 builds per month
> Unlimited sites
> Unlimited requests
> Unlimited bandwidth
you can upgrade to the pro ($20/mo) or business ($200/mo) plans for more concurrent builds and builds per month. still not priced per domain or site!
You can also tie it with the free plan for Cloudflare Workers if you have some need beyond static pages.