Github has been petitioned, begged and implored to enable SSL on custom domains running on Github pages. They finally delivered SSL support with LetsEncrypt.
This is what I had to do for my Github pages Jekyll site at https://www.dblock.org. You can see the changes in www.dblock.org@5f6f047d.
_config.yml
Change url
in _config.yml
to https://www.dblock.org
to fix asset and other internal links.
I couldn’t figure out how to make those relative to either HTTP or HTTPs.
_includes/_enforce_ssl.html
Add a JavaScript redirect to _head.html
from HTTP to HTTPs.
<script language="javascript">
// Enforce SSL
(function (root) {
"use strict";
var h = root ? root.location.hostname : "",
p = root ? root.location.protocol : "";
if ("http:" === p && !(/^(localhost|127.0.0.1)/).test(h)) {
root.location.protocol = "https:";
}
}
("undefined" !== typeof window ? window : this));
</script>
I couldn’t find a plugin that could make a 301 redirect before page load, something that Google recommends.
_includes/_head.html
Include the JavaScript.
{% include _enforce_ssl.html %}