Some links that helped me getting this working:
- 2018: [Wayback] How to use lets Encrypt SSL with github pages with custom subdomain | by Hojjat Ali Mohammadi | Medium
- 2018: [Wayback/Archive.is] Setting up GH-pages with custom domain, strict (end-to-end) SSL with CloudFlare DNS & CDN
- 2018: [Wayback] Custom domains on GitHub Pages gain support for HTTPS | The GitHub Blog
- 2016: [Wayback] HTTPS for GitHub Pages | The GitHub Blog
- 2009: [Wayback] CNAME support for GitHub Pages | The GitHub Blog
- [Wayback] GitHub Pages Documentation – GitHub Docs
- [Wayback] Getting started with GitHub Pages – GitHub Docs
- [Wayback] About GitHub Pages – GitHub Docs
- [Wayback] Creating a GitHub Pages site – GitHub Docs
- [Wayback] Adding a theme to your GitHub Pages site with the theme chooser – GitHub Docs
- [Wayback] Configuring a publishing source for your GitHub Pages site – GitHub Docs
- [Wayback] Changing the visibility of your GitHub Pages site – GitHub Docs (you need to have at least a GitHub Enterprise Cloud subscription for this).
- [Wayback] Creating a custom 404 page for your GitHub Pages site – GitHub Docs
- [Wayback] Securing your GitHub Pages site with HTTPS – GitHub Docs
- [Wayback] Using submodules with GitHub Pages – GitHub Docs (I skipped this as the site will contain just one or a few pages)
- [Wayback] Unpublishing a GitHub Pages site – GitHub Docs
- [Wayback] Configuring a custom domain for your GitHub Pages site – GitHub Docs
- [Wayback] Getting started with GitHub Pages – GitHub Docs
- [Wayback] GitHub Pages | Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live.
- [Wayback] Setting up a GitHub Pages site with Jekyll – GitHub Docs (I skipped this for now given the simplicity of the pages to be published, but might later revisit in case I want to have a more complex pages site)
- [Wayback] About GitHub Pages and Jekyll – GitHub Docs
- [Wayback] Creating a GitHub Pages site with Jekyll – GitHub Docs
- [Wayback] Testing your GitHub Pages site locally with Jekyll – GitHub Docs
- [Wayback] Adding content to your GitHub Pages site using Jekyll – GitHub Docs
- [Wayback] Setting a Markdown processor for your GitHub Pages site using Jekyll – GitHub Docs
- [Wayback] Adding a theme to your GitHub Pages site using Jekyll – GitHub Docs
- [Wayback] About Jekyll build errors for GitHub Pages sites – GitHub Docs
- [Wayback] Troubleshooting Jekyll build errors for GitHub Pages sites – GitHub Docs
- [Wayback] Setting up a GitHub Pages site with Jekyll – GitHub Docs (I skipped this for now given the simplicity of the pages to be published, but might later revisit in case I want to have a more complex pages site)
- [Wayback] html – Can I create more than one repository for github pages? – Stack Overflow
- [Wayback] domain – Publishing more than one site on GitHub Pages – Web Applications Stack Exchange
- [Wayback] GitHub Pages is a CI/CD pipeline | Opensource.com
- [Wayback] Tutorial: How to set up and automatically deploy your website to GitHub Pages – Roelof Jan Elsinga
- [Wayback/Archive.is] Deploying documentation to GitHub Pages with CI | CircleCI
The goal is to have a githubstatus.wiert.me
plain html (or maybe markdown) page that eventually will show some status information (kind of like githubstatus.com, but for different things).
Note that for free accounts, private repositories cannot publish pages: [Wayback] Troubleshooting custom domains and GitHub Pages – GitHub Docs:
GitHub Pages is available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see “GitHub’s products.”
[Wayback] GitHub’s products contradicts this by limiting GitHub Pages to only GitHub Pro and GitHub Team and higher levels.
Steps I did
Since there are quite a few links above, here are the steps I took from my github.com/jpluimers account:
- For jpluimers.github.io/jpluimers (steps 1, 3, 4 and 5 were the key ones):
- Created a new GitHub repository github.com/jpluimers/jpluimers with
license
(in my case MIT license) andREADME.md
(which by default is filled like this). - Amended the README.md from my StackExchange profile.
- Enabled Pages publishing by switching the source from
None
to themain branch
. - GitHub automagically published it at jpluimers.github.io/jpluimers.
- Verified it was running at jpluimers.github.io/jpluimers (note there is no site at jpluimers.github.io yet – it shows a 404 error as in this archived version, see below why).
- I saved that version in the Wayback machine to show I had the Twitter profile link markdown format wrong.
- Fixed the Twitter profile link so it is easier to find back my surviving rectal cancer story.
- Fixed the link to my www.race-checker.com running results as by now that is a Chinese Porn site because the underlying company 4Athletes Sports GmbH went belly up in 2019 (and still owns the race-checker trademark) and updated the half marathon results as well.
- I verified the deployment actions at github.com/jpluimers/jpluimers/deployments/activity_log?environment=github-pages.
- Created a new GitHub repository github.com/jpluimers/jpluimers with
- For jpluimers.github.io (step 1 and 3 were the key ones):
- Created a new GitHub repository github.com/jpluimers/jpluimers.github.io with
license
(in my case MIT license) andREADME.md
(which by default is filled like this: only one heading 1 line with the name of the repository). - GitHub automagically set the source to the
main branch
, then published it at jpluimers.github.io. - Verified it was running at jpluimers.github.io.
- I verified the deployment action at github.com/jpluimers/jpluimers.github.io/deployments/activity_log?environment=github-pages.
- Created a new GitHub repository github.com/jpluimers/jpluimers.github.io with
- For githubstatus.wiert.me :
- Created a new GitHub repository github.com/jpluimers/jpluimers.github.io with
license
(in my case MIT license) andREADME.md
(which by default is filled like this: only one heading 1 line with the name of the repository). - Enabled Pages publishing by switching the source from
None
to themain branch
. - I verified the jpluimers.github.io/githubstatus.wiert.me page existed (it will be gone soon).
- Set the custom domain to
githubstatus.wiert.me
. - Now GitHub, after the DNS check, complained rightly that “githubstatus.wiert.me is improperly configured”, as it needs to be “set up with a correct CNAME record … We recommend you change this to a CNAME record pointing to
jpluimers.github.io
.”. - So in the DNS settings panel of my wiert.me domain, I added a DNS record of type
CNAME
, with namegithubstatus.wiert.me
pointing tojpluimers.github.io
.
CNAME githubstatus.wiert.me Alias of jpluimers.github.io
- In retrospect, I should have reversed steps 6. and 4, as now this was the order of events, with a lot of waiting for the DNS to time-out.
The DNS timeout was because
githubstatus.wiert.me
originally pointed via the DNSCNAME
entry*.wiert.me
to the blog at wiert.me, the timeouts were set by the domain provider (in this case WordPress.com), see the DNSnslookup
information for*.wiert.me
[Wayback/Archive.is].If I had set the DNS CNAME first, then the below list would have been much shorter.
This was the order of events waiting for the DNS to timeout and the
CNAME
entry to take effect:-
- Before entering the
githubstatus.wiert.me
custom domain “Your site is ready to be published athttps://jpluimers.github.io/githubstatus.wiert.me/
“ - After entering the
githubstatus.wiert.me
custom domain:
Your site is published at
http://githubstatus.wiert.me/
and a “Check Again” button preceded with:
githubstatus.wiert.me is improperly configured
Your site’s DNS settings are using a custom subdomain,githubstatus.wiert.me
, that’s not set up with a correct CNAME record.
…
We recommend you change this to a CNAME record pointing to
jpluimers.github.io
.and an “☐ Enforce HTTPS” checkbox followed by:
Unavailable for your site because your domain is not properly configured to support HTTPS (
githubstatus.wiert.me
) - After configuring the DNS information, and pressing the “Check Again” button the text briefly shows
githubstatus.wiert.me DNS check is in progress.
Please wait for the DNS check to complete.and an “☐ Enforce HTTPS” checkbox followed by:
Unavailable for your site because your domain is not properly configured to support HTTPS (
githubstatus.wiert.me
) - After a few minutes at the top of the page:
Domain githubstatus.wiert,me is not eligible for HTTPS at this time.
followed by the same “Check Again” button preceded with:
githubstatus.wiert.me is improperly configured
Your site’s DNS settings are using a custom subdomain,githubstatus.wiert.me
, that’s not set up with a correct CNAME record.
…
We recommend you change this to a CNAME record pointing to
jpluimers.github.io
. - A few more minutes later:
Requesting a certificate for githubstatus.wiert.me. It can take up to an hour to propagate.
followed again by the above “Check Again” button.
- More than an hour later:
Certificate already exists for githubstatus.wriert.me and is usable.
followed again by the above “Check Again” button.
- The next morning, a green checkmark (✓) had appeared behind the
githubstatus.wiert.me
custom domain and the text following the “☐ Enforce HTTPS” had by:
HTTPS provides a layer of encryption that prevents others from snooping on or tampering with traffic to your site.
- Both these URLs now function correctly (so I can test a page both with and without TLS):
- Before entering the
The above order is typical for DNS timeouts on a distributed computing system like GitHub: some parts of the system are waiting for the DNS time out and therefore list failure, while some other parts already have had the updated DNS CNAME entry and therefore list success
-
- In retrospect, I should have reversed steps 6. and 4, as now this was the order of events, with a lot of waiting for the DNS to time-out.
- After waiting for the DNS timeout (this was a long wait, I probably should have reversed steps 6. and 4.), verified that https://githubstatus.wiert.me/ was loading fine.
- I verified the deployment actions at github.com/jpluimers/githubstatus.wiert.me/deployments/activity_log?environment=github-pages
- Created a new GitHub repository github.com/jpluimers/jpluimers.github.io with
Note: I saved the TLS information – including certificates here:
- [Wayback] certcheckerapp.com/home?hostname=jpluimers.github.io&hideResult=false
- [Wayback] Wildcard GitHub certificate with serial number
2493E07FA9E375A2DBBC61D94430FCF
forwww.github.com, *.github.com, github.com, *.github.io, github.io, *.githubusercontent.com, githubusercontent.com
. - [Wayback] Certificate chain
- [Wayback] Wildcard GitHub certificate with serial number
- [Wayback] certcheckerapp.com/home?hostname=githubstatus.wiert.me&hideResult=false
- [Wayback] Regular Let’s Encrypt domain certificate with serial number
4A39C157AAAD4443D756471AEEDD9D80BF2
forgithubstatus.wiert.me
. - [Wayback] Certificate chain
- [Wayback] Regular Let’s Encrypt domain certificate with serial number
–jeroen