Gitlab pages URL format without wildcard for automatic Let's Encrypt Certificates
Gitlab pages have this URL format https://<namespace>.example.io/<project_slug>
which can't be used with the Let's Encrypt certificate generated using HTTP challenge. That's the reason why users have to provide their own certificate, which is annoying.
The solution is to have one domain for all pages URL without the wildcard https://example.io/<namespace>/<project_slug>
and Gitlab will be able to get a certificate via HTTP challenge.
Edited by Ondrej Sika