This blog site is running behind nginx.
But there is one problem:
Same nginx configuration works very well on my Chinese blog website, but fail for this site. It’s always show errors in Chrome, saying “redirect too many times”.
The only difference is that, this site is running behind Cloudflare, but Chinese blog website does not depend on Cloudflare.
So I think this can be resolved by some Cloudflare configuration.
Open Cloudflare, choose the domain, in Page Rules, new a rule ‘Always Use HTTPS’ for link
Then it works. All HTTP requests are 301 redirected to HTTPS.